我在Windows Server 2019上使用Apache 2.4作为Kestrel的反向代理。我已经在服务器上运行了一个应用程序。我在appname.conf
中建立了另一个具有自己的C:\Apache24\conf\sites-enabled
文件的应用程序,并将新的未过期的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] 无法启动红est。 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
,甚至建议按照on Github先从Windows证书管理器GUI删除证书。 ,无济于事。
非常感谢您的帮助。
答案 0 :(得分:1)
如Lex Li的评论所指出,UseUrls()
不需要URL的https
版本。要在同一服务器上具有其他应用程序,只需将未使用的端口提供给Kestrel,这就是完成的方式。 CreateHostBuilder
的外观如下:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls("http://localhost:5002");
webBuilder.UseStartup<Startup>();
});