最近用.NET6 开发了一个简单的小程序服务端,做过小程序的应该清楚,小程序请求接口需要协议的地址。

HTTPS

大家都知道,在没有在启动时指定端口或没有在配置时,默认是HTPP协议的5000端口

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

在以前,我一般也是才用默认的配置,然后,在前面在启一个nginx来开启协议。我想了一下,就一个简单的查询小程序,没必要又加一层负载。所以,便跟着官网来进行配置

HTTPS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5000"
},
"HttpsInlineCertFile": {
"Url": "https://localhost:5001",
"Certificate": {
"Path": "
"Password": "
},
"HttpsInlineCertAndKeyFile": {
"Url": "https://localhost:5002",
"Certificate": {
"Path": "
"KeyPath": "
"Password": "

",

",

",

在中,我们可以同时为我们的Web服务配置和两个,在配置之前,我们需要准备好所需的证书,这里可以选择证书或者是证书,在证书的压缩包内,会有文件和密码;证书的压缩包内则有和两个文件。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

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

Nginx

打开网易新闻 查看精彩图片

看启动的信息,貌似是万事俱备,只欠调用了,可是当我用访问时,它给了我一个惊喜-

https

无法访问

打开网易新闻 查看精彩图片

难道是不支持这样配置。我便继续看了看官网的文档,

Kestrel

https

打开网易新闻 查看精彩图片

看样子,是我少了一行配置,还需要加上

"SslProtocols": ["Tls12", "Tls13"],

打开网易新闻 查看精彩图片

OK,这样一来,便能通过和来访问我们的了

http

https

Kestrel Web服务

打开网易新闻 查看精彩图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:80"
},
"HttpsInlineCertAndKeyFile": {
"Url": "https://*:443",
"SslProtocols": ["Tls12", "Tls13"],
"Certificate": {
"Path": "C:\\cert\\7430172_domain_nginx\\7430172_domain.com.pem",
"KeyPath": "C:\\cert\\7430172_domain.com_nginx\\7430172_domain.com.key"