.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