我目前使用的是ASP.NET Core 2.x,我过去可以让Kestrel使用HTTPS / SSL,只需将其放入UseUrls()
方法中,如下所示:
var host = new WebHostBuilder()
.UseUrls("http://localhost", "https://111.111.111.111")
.UseKestrel()
.Build();
字符串
但现在我得到了一个例外:
System.InvalidOperationException:
HTTPS endpoints can only be configured using KestrelServerOptions.Listen().
型
如何在ASP.NET Core 2.x中配置Kestrel以使用SSL?
2条答案
按热度按时间xfyts7mz1#
基础知识。使用服务器URL
如果您想关联您的服务器以使用分配给服务器/Web主机的所有IP地址,那么您可以这样做:
字符串
UseUrls()
方法中使用的字符串格式为:http://{ip address}:{port number}
。*
(krsks)作为IP地址,则意味着主机上的所有可用IP地址。UseUrls()
方法的大量其他细节,请参阅Microsoft官方文档。*但是,SSL将不与
UseUrls()
方法一起工作--因此,这意味着如果您尝试添加以https://
开头的URL,程序将抛出异常型
端点配置,使用HTTPS并绑定SSL证书
HTTPS端点只能使用
KestrelServerOptions
配置。下面是使用
Listen
方法使用TCP套接字的示例:型
注意:如果同时使用
Listen
方法和UseUrls
,Listen
端点将覆盖UseUrls
端点。如果使用IIS,IIS的URL绑定将覆盖通过调用
Listen
或UseUrls
设置的任何绑定。有关详细信息,请参阅Introduction to ASP.NET Core Module。mu0hgdu02#
你不需要单独用kestrel实现https。如果你运行的应用程序需要https,它很可能会面向互联网。这意味着你需要在nginx或Apache后面运行kestrel,并让其中一个为你处理https请求。