基于HTTPS的介面測驗——nginx配置SSL
目錄
- 基于HTTPS的介面測驗——nginx配置SSL
- 1. 背景
- 2. 所需環境與域名備案決議
- 2.1 云服務器
- 2.2 域名
- 2.3 SSL證書
- 2.3.1 點擊申請免費的SSL證書
- 2.3.2 選擇SSL服務商
- 2.3.3 SSL資訊填寫
- 2.3.4 域名身份驗證
- 2.3.5 申請成功
- 2.3.6 收費SSL證書
- 2.4 網站備案
- 2.4.1 備案流程
- 2.4.2 備案通過
- 2.5 域名決議
- 2.5.1 點擊云決議或者域名管理
- 2.5.2 點擊決議
- 2.5.3 添加www一條記錄
- 3.nginx配置SSL
- 3.1 配置HTTP ssl 443埠號,html檔案夾下的index.html是其訪問主頁
- 3.2 配置后臺資料的反向代理介面
- 3.3 域名,IP地址跳轉
- 3.4 所有配置代碼詳見如下
- 4. postman介面測驗
- 4.1 https登錄介面測驗
- 4.2 443埠號省略
- 5.小結
1. 背景
年前團隊成員zjq在做智能設備箱運維系統的微信小程式,主要實作智能設備箱串列展示,單臺監測展示,門禁開關控制等功能,做著做著,發現微信小程式的后臺介面,都需要https的安全鏈接,IP地址+埠號無效,對,騰訊為了使得小程式的安全,使用了https規范,
2. 所需環境與域名備案決議
2.1 云服務器
這里推薦購買騰訊云服務器或者阿里云服務器,因為他們的服務器會配備一個公網IP,比較地適合做微信后臺介面的地址,當然,如果你所裝的寬帶有購買了運營商的公網IP地址,只需要一臺電腦,或者服務器就可以使用了,原理都一樣,云服務器一個優點就是切換安裝作業系統非常方便,而且可以瞬間完成,比如windows server跟linux之間的切換,
本文采用騰訊云云服務商:

云服務器配置:

這里需要注意的是,可以選擇活動期去購買,不然價格還挺貴的,
2.2 域名
域名也可以到阿里云或者騰訊云處購買,因為他們都帶有備案功能,而且碰上搞活動也不貴,
本文采用騰訊云云服務商:

需要注意的是,這里域名跟IP地址的購買必須保持一致,統一在阿里云或者騰訊云,因為備案第一步需要先經過云服務商的審核,而每個不同的云服務商的審核規則都不相同,
2.3 SSL證書
HTTPS還需要SSL證書,在如下路由可以申請到免費的SSL證書,

2.3.1 點擊申請免費的SSL證書

2.3.2 選擇SSL服務商

2.3.3 SSL資訊填寫

2.3.4 域名身份驗證

2.3.5 申請成功

2.3.6 收費SSL證書
商用SSL證書根據功能不同,收費不同,

2.4 網站備案
2.4.1 備案流程

- 第一步首先進過騰訊云服務商審核,第二部騰訊云服務商審核通過之后會提交給管局審核;
- 審核時間與地區相關,浙江地區時間大概為兩周左右;
2.4.2 備案通過
備案通過之后的狀態顯示為綠色的正常,

2.5 域名決議
在域名決議這一步我們將通過配置云服務商的DNS服務器完成IP地址跟域名的系結,
2.5.1 點擊云決議或者域名管理

2.5.2 點擊決議

2.5.3 添加www一條記錄

3.nginx配置SSL
找到nginx.conf組態檔,添加如下配置,
3.1 配置HTTP ssl 443埠號,html檔案夾下的index.html是其訪問主頁
#http節點中可以添加多個server節點
server{
#監聽443埠
listen 443 ssl;
#對應的域名,改成自己的域名就可以了
server_name dataxxxx.tech;
#從騰訊云獲取到的第一個檔案的全路徑
ssl_certificate cert/1_www.dataxxxx.tech_bundle.crt;
#從騰訊云獲取到的第二個檔案的全路徑
ssl_certificate_key cert/2_www.dataxxxx.tech.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#因為使用的是靜態的html網頁,所以直接使用location就可以完成了,
location / {
#檔案夾
root html;
#主頁檔案
index index.html;
}
}
3.2 配置后臺資料的反向代理介面
location /newApi/
{
rewrite ^/newApi/(.*)$ /$1 break; #所有對后端的請求加一個api前綴方便區分,真正訪問的時候移除這個前綴 #
proxy_pass http://localhost:9088;
}
3.3 域名,IP地址跳轉
配置http域名,IP地址跳轉到https 443介面
server{
listen 80;
server_name 148.xx.xxxx.142;
rewrite ^/(.*)$ https://dataxxxx.tech:443/$1 permanent;
}
server{
listen 80;
server_name www.dataxxxx.tech;
rewrite ^/(.*)$ https://dataxxxx.tech:443/$1 permanent;
}
3.4 所有配置代碼詳見如下
#http節點中可以添加多個server節點
server{
#監聽443埠
listen 443 ssl;
#對應的域名,改成自己的域名就可以了
server_name dataxxxx.tech;
#從騰訊云獲取到的第一個檔案的全路徑
ssl_certificate cert/1_www.dataxxxx.tech_bundle.crt;
#從騰訊云獲取到的第二個檔案的全路徑
ssl_certificate_key cert/2_www.dataxxxx.tech.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#因為使用的是靜態的html網頁,所以直接使用location就可以完成了,
location / {
#檔案夾
root html;
#主頁檔案
index index.html;
}
location /newApi/
{
rewrite ^/newApi/(.*)$ /$1 break; #所有對后端的請求加一個api前綴方便區分,真正訪問的時候移除這個前綴 #
proxy_pass http://localhost:9088;
}
}
server{
listen 80;
server_name 148.xx.xxxx.142;
rewrite ^/(.*)$ https://dataxxxx.tech:443/$1 permanent;
}
server{
listen 80;
server_name www.dataxxxx.tech;
rewrite ^/(.*)$ https://dataxxxx.tech:443/$1 permanent;
}
4. postman介面測驗
4.1 https登錄介面測驗

4.2 443埠號省略
基于HTTPS的443埠就像基于http的80埠一樣,可省略,詳見如下例子

5.小結
本文主要總結了后臺API介面暴露在公網IP或者域名上的基于SSL證書的一種HTTPS的加密方式,主要基于nginx配置,有任何疑問,我會耐心解答;有任何更好的建議或者解決方案,也請一并提出,好讓我有所提高,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2055.html
標籤:其他
上一篇:專案版本
下一篇:學習CNN系列一:原理篇
