我們如果要在伺服器上釋出https前端應用和WebAPI的應用,那麼我們就需要用到https證書了。我們一般釋出的應用的雲伺服器上,都會提供一定量的相關的免費證書(一般為20個)供我們使用,每個一年期限,到期再續即可,一般情況下基本上滿足要求了,本篇隨筆介紹如何基於雲服務提供商的免費證書,在伺服器上釋出Nginx的前端應用和基於IIS的Web API介面的https應用處理。
如阿里雲和騰訊雲,他們雲伺服器管理控制檯上,都可以找到對應免費https的SSL證書申請的入口,如下所示。
在申請介面上,填入所需的域名,以及相關資訊就可以發起申請了,申請後等待一點時間就會成功了,如阿里雲的申請介面如下。
而騰訊雲上的申請入口也是類似,如下介面所示。
申請成功後,在列表中就可以看到下載SSL證書的資訊了。如下所示。
在下載介面上,我們可以看到不同部署伺服器上的不同證書下載入口,選擇我們具體的(如這裡用到了Nginx和IIS的SSL證書檔案)
我們選擇所需的證書檔案下載下來備用即可。下面會繼續介紹IIS證書的安裝和使用,以及Nginx的證書檔案處理實現https的應用和介面服務。
如我們先下載IIS的證書檔案,我們可以看到除了證書檔案,還有一個附帶的文字檔案,是證書的密碼資訊。
我們雙擊進行證書的安裝,選擇本地計算機的儲存位置即可。
然後輸入所需的證書密碼,完成安裝就可以了。
釋出一個IIS的Web API應用,然後在右鍵進行埠的繫結處理,設定繫結的為https,指定埠,並指定具體的SSL證書就是了,如下所示。
繫結的介面如下所示。
這樣IIS的伺服器端的Web API就可以使用https的協定了。
我們的前端是基於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證書了,因為證書對應的是一個相同域名的,因此可以正常使用。