【发布时间】:2020-04-30 13:18:33
【问题描述】:
我在 Windows Server 2019 上使用 Apache 2.4 作为 Kestrel 的反向代理。我有一个应用程序已经在服务器上运行。我在C:\Apache24\conf\sites-enabled 中使用自己的appname.conf 文件设置了第二个应用程序,并将新的、未过期的SSL 证书文件添加到C:\Apache24\conf\ssl\appname。
在应用程序的Program.cs 中,这是CreateHostBuilder,我在其中指定了要使用的端口,因此它们与第一个应用程序的不同:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls("http://localhost:5002", "https://localhost:5003");
webBuilder.UseStartup<Startup>();
});
在服务器 (dotnet appname.dll) 上运行命令启动应用程序时,我收到此错误:
暴击:Microsoft.AspNetCore.Server.Kestrel[0] 无法启动 Kestrel。 System.InvalidOperationException:无法配置 HTTPS 端点。未指定服务器证书,默认开发者证书找不到或已过期。
要生成开发人员证书,请运行“dotnet dev-certs https”。要信任证书(仅限 Windows 和 macOS),请运行“dotnet dev-certs https --trust”。 有关配置 HTTPS 的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=848054。
即使我有真正的 SSL 证书,我已经运行 dotnet dev-certs https --trust,正如错误所暗示的那样,甚至首先从 Windows 证书管理器 GUI 中删除证书,正如建议的 on Github 那样,无济于事.
非常感谢任何帮助。
【问题讨论】:
-
1) 由于 Kestrel 在 Apache 后面运行,您实际上并不需要 HTTPS URL。 2)如果你坚持HTTPS,那么你必须在Windows HTTP API中为端口5003创建一个有效的证书映射。更多可以从docs.jexusmanager.com/tutorials/https-binding.html#background了解更多
标签: windows apache asp.net-core ssl-certificate kestrel