我們如果要在伺服器上發佈https前端應用和WebAPI的應用,那麼我們就需要用到https證書了。我們一般發佈的應用的雲伺服器上,都會提供一定量的相關的免費證書(一般為20個)供我們使用,每個一年期限,到期再續即可,一般情況下基本上滿足要求了,本篇隨筆介紹如何基於雲服務提供商的免費證書,在伺服器上... ...
我們如果要在伺服器上發佈https前端應用和WebAPI的應用,那麼我們就需要用到https證書了。我們一般發佈的應用的雲伺服器上,都會提供一定量的相關的免費證書(一般為20個)供我們使用,每個一年期限,到期再續即可,一般情況下基本上滿足要求了,本篇隨筆介紹如何基於雲服務提供商的免費證書,在伺服器上發佈Nginx的前端應用和基於IIS的Web API介面的https應用處理。
1、申請免費證書
如阿裡雲和騰訊雲,他們雲伺服器管理控制臺上,都可以找到對應免費https的SSL證書申請的入口,如下所示。
在申請界面上,填入所需的功能變數名稱,以及相關信息就可以發起申請了,申請後等待一點時間就會成功了,如阿裡雲的申請界面如下。
而騰訊雲上的申請入口也是類似,如下界面所示。
申請成功後,在列表中就可以看到下載SSL證書的信息了。如下所示。
在下載界面上,我們可以看到不同部署伺服器上的不同證書下載入口,選擇我們具體的(如這裡用到了Nginx和IIS的SSL證書文件)
我們選擇所需的證書文件下載下來備用即可。下麵會繼續介紹IIS證書的安裝和使用,以及Nginx的證書文件處理實現https的應用和介面服務。
2、發佈基於IIS的Web API的https應用介面
如我們先下載IIS的證書文件,我們可以看到除了證書文件,還有一個附帶的文本文件,是證書的密碼信息。
我們雙擊進行證書的安裝,選擇本地電腦的存儲位置即可。
然後輸入所需的證書密碼,完成安裝就可以了。
發佈一個IIS的Web API應用,然後在右鍵進行埠的綁定處理,設置綁定的為https,指定埠,並指定具體的SSL證書就是了,如下所示。
綁定的界面如下所示。
這樣IIS的伺服器端的Web API就可以使用https的協議了。
3、發佈Nginx的前端應用
我們的前端是基於Vue的應用的,因此應用發佈後,使用Nginx發佈前端應用更為方便,因此這裡介紹使用SSL免費證書在伺服器上發佈Nginx的前端應用,以便使用https協議訪問。
前面我們提到了在申請完免費的SSL證書後,下載對應的Nginx的SSL證書文件。
基於Nginx的SSL證書設置,有兩種方式,一種是創建一個ssl.conf文件,設置ssl.conf的方式指定對應的證書信息,如下所示。
#ssl.conf文件內容 server { listen 8080 ssl http2; server_name localhost; ssl_certificate C:/WebRoot/nginx/conf/ssl/www.iqidi.com_bundle.crt; ssl_certificate_key C:/WebRoot/nginx/conf/ssl/www.iqidi.com.key; #先配置簽名證書,再配置加密證書,簽名加密證書私鑰 key 為同一個! ssl_session_timeout 5m; ssl_protocols TLSv1.2; ssl_ciphers SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL; ssl_prefer_server_ciphers on; location / { root html/CollectDataApp; index index.html index.htm; } }
這樣我們在conf/nginx.conf 文件中設置埠偵聽,就可以了
server { listen 8080 ssl; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html/CollectDataApp; index index.html index.htm; try_files $uri $uri/ /index.html =404; } }
如果是不想獨立分開兩個配置文件,也可以把SSL證書位置信息寫在conf/nginx.conf 文件中,也是可以的,如下所示。
server { listen 9002 ssl; server_name localhost; ssl_certificate C:/WebRoot/nginx/conf/ssl/www.iqidi.com_bundle.crt; ssl_certificate_key C:/WebRoot/nginx/conf/ssl/www.iqidi.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #charset koi8-r; #access_log logs/host.access.log main; location / { root html/AssetCheckApp; index index.html index.htm; try_files $uri $uri/ /index.html =404; } }
這樣就合併了SSL設置和埠偵聽的文件在一起,測試後正常使用了。
以上就是關於利用雲服務提供商的免費證書,在伺服器上發佈https前端應用和WebAPI的應用的整個過程,證書解決了,根據不同的應用伺服器,設置好對應的方式就可以實現https應用了。
一旦我們完成了免費證書的申請、下載,那麼在伺服器上不同埠的應用,都可以使用這個證書作為SSL證書,從而實現多個不同應用埠上公用一個SSL證書了,因為證書對應的是一個相同功能變數名稱的,因此可以正常使用。
專註於代碼生成工具、.Net/.NetCore 框架架構及軟體開發,以及各種Vue.js的前端技術應用。著有Winform開發框架/混合式開發框架、微信開發框架、Bootstrap開發框架、ABP開發框架、SqlSugar開發框架等框架產品。
轉載請註明出處:撰寫人:伍華聰 http://www.iqidi.com