利用雲服務提供商的免費證書,在伺服器上釋出https前端應用和WebAPI的應用

2022-12-08 15:02:40

我們如果要在伺服器上釋出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證書了,因為證書對應的是一個相同域名的,因此可以正常使用。