.NET 6 Kestrel Web 部署配置HTTP和HTTPS
最近用.NET6 开发了一个简单的小程序服务端,做过小程序的应该清楚,小程序请求接口需要HTTPS协议的地址。
大家都知道,在没有在启动时指定端口或没有在appsettings.json配置Endpoints时,默认是HTPP协议的5000端口

在以前,我一般也是才用默认的配置,然后,在前面在启一个nginx来开启HTTPS协议。我想了一下,就一个简单的查询小程序,没必要又加一层负载。所以,便跟着官网来进行配置
1 | { |
在appsettings.json中,我们可以同时为我们的Web服务配置HTTP和HTTPS两个Endpoint,在配置之前,我们需要准备好所需的SSL证书,这里可以选择IIS证书或者是NGINX证书,在IIS证书的压缩包内,会有*.pfx文件和密码;NGINX证书的压缩包内则有.pem和.key两个文件。

我选择的是Nginx证书,具体配置如下图,

看启动的信息,貌似是万事俱备,只欠调用了,可是当我用https访问时,它给了我一个惊喜-无法访问
难道是Kestrel不支持这样配置https。我便继续看了看官网的文档,
看样子,是我少了一行配置,还需要加上"SslProtocols": ["Tls12", "Tls13"],
OK,这样一来,便能通过http和https来访问我们的Kestrel Web服务了

最后附上完整的Endpoints配置
1 | "Kestrel": { |
.NET 6 Kestrel Web 部署配置HTTP和HTTPS


