Aliyun SSL 證書籤發&安裝

HOsystem發表於2021-05-26


HTTPS

SSL證照 簽發 和 應用

- SSL證照服務(Alibaba Cloud SSL Certificates Service)是由阿里雲聯合中國及中國以外地域多家數字證照頒發機構( CA,Certificate Authority),在阿里雲平臺上直接提供的數字證照申請和部署服務。SSL證照服務幫助您以最小的成本將服務從HTTP轉換成HTTPS,實現網站或移動應用的身份驗證和資料加密傳輸。

# 阿里雲SSL證照和HTTPS的關係
- 可以通過阿里雲SSL證照服務購買SSL證照,並向CA中心提交證照申請,直到證照成功簽發;您將已簽發的證照安裝到Web伺服器後,則Web服務將會通過HTTPS加密協議來傳輸資料。

- HTTPS加密傳輸協議可啟用客戶端瀏覽器到網站伺服器之間的SSL加密通道(SSL協議),從而實現高強度雙向加密傳輸,防止傳輸資料被洩露或篡改。

# 為什麼網站需要HTTPS
- 防劫持、防篡改、防監聽:使用SSL證照實現網站的HTTPS化,可以對網站使用者與網站間的互動訪問全鏈路資料進行加密,從而實現傳輸資料的防劫持、防篡改、防監聽。

- 提升網站的搜尋排名:使用SSL證照實現網站的HTTPS化後,網站在搜尋引擎顯示結果中的排名將會更高,有利於提升網站的搜尋排名和站點的可信度。

- 提升網站的訪問流量:使用SSL證照實現網站的HTTPS化,可以強化網站在使用者側的身份可信程度,使網站使用者能更安心地訪問網站,提升網站的訪問流量。

證照購買

# 1. 支援選購的證照型別
- 阿里雲SSL證照服務支援購買DV證照、OV證照和EV證照三種型別的證照。不同型別證照的安全性和適用的網站型別不同,具體如下所示。

wechat_20210517015107.png

證照申請

- 購買SSL證照訂單例項後,您還必須通過SSL證照服務向CA中心提交證照申請。只有當CA中心稽核通過您的證照申請後,才會為您簽發證照,然後您才可以將已簽發的證照安裝到伺服器,實現網站HTTPS。

- 參考文件:https://help.aliyun.com/document_detail/98574.htm?spm=a2c4g.11186623.2.10.11743147W9oWm9#concept-wxz-3xn-yfb)

證照安裝

- 通過SSL證照服務購買和簽發證照後,可以將已簽發的證照下載並安裝到Nginx(或Tengine)伺服器上。
  • 下載證照到本地
# 1. 登入SSL證照控制檯。

# 2. 定位到要下載的證照,單擊操作列下的下載。

# 3. 在證照下載頁面,定位到Nginx伺服器,單擊操作列下的下載。該操作會將Nginx伺服器證照壓縮包下載到本地,並儲存在瀏覽器的預設下載位置。

wechat_20210517020437.png

# 4. 開啟瀏覽器的預設下載位置,解壓已下載的Nginx證照壓縮包檔案。解壓後您將會獲得以下檔案:

p33690.png

  • 在Nginx獨立伺服器上安裝證照
  1. 登入Nginx伺服器

    使用遠端登入工具(例如,PuTTY、Xshell)登入伺服器。

  2. 執行以下命令,在Nginx安裝目錄(預設為/usr/local/nginx/conf)下建立一個用於存放證照的目錄(命名為cert)。

# 進入Nginx預設安裝目錄。如果您修改過預設安裝目錄,請根據實際配置進行調整。
$ cd /usr/local/nginx/conf  

# 建證照目錄,命名為cert。
$ mkdir cert  

wechat_20210517021406.png

  1. 使用遠端登入工具(例如,PuTTY、Xshell)附帶的本地檔案上傳功能,將本地證照檔案和金鑰檔案上傳到Nginx伺服器的證照目錄(示例中為/usr/local/nginx/conf/cert)。
  • 注意:如果您在申請證照時將CSR生成方式設定為手動填寫,請將您手動建立的證照金鑰檔案上傳到/usr/local/nginx/conf/cert目錄。

wechat_20210517021711.png

  1. 編輯Nginx配置檔案(nginx.conf),修改與證照相關的配置內容。
# 備份配置檔案
# nginx.conf預設儲存在/usr/local/nginx/conf目錄下。如果您修改過nginx.conf的位置,請/usr/local/nginx/conf/nginx.conf替換成修改後的位置。
$ cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

# 開啟配置檔案
$ vi /usr/local/nginx/conf/nginx.conf
  • 修改nginx.conf檔案

yourdomain.com:替換成證照繫結的域名。
如果您購買的是單域名證照,需要修改為單域名(例如www.aliyun.com);如果您購買的是萬用字元域名證照,則需要修改為萬用字元域名(例如*.aliyun.com)。

cert-file-name.pem:替換成您在步驟3上傳的證照檔案的名稱。
cert-file-name.key:替換成您在步驟3上傳的證照金鑰檔案的名稱。>

nginx.conf:

#以下屬性中,以ssl開頭的屬性表示與證照配置有關。
server {
    listen 443 ssl;
    #配置HTTPS的預設訪問埠為443。
    #如果未在此處配置HTTPS的預設訪問埠,可能會造成Nginx無法啟動。
    #如果您使用Nginx 1.15.0及以上版本,請使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要將yourdomain.com替換成證照繫結的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要將cert-file-name.pem替換成已上傳的證照檔案的名稱。
    ssl_certificate_key cert/cert-file-name.key; #需要將cert-file-name.key替換成已上傳的證照金鑰檔案的名稱。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的型別。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS協議的型別。
    ssl_prefer_server_ciphers on;
    location / {
        root html;  #站點目錄。
        index index.html index.htm;
    }
}

wechat_20210517022828.png

注:若使用以上模板配置訪問不成功 則使用下面這個模板

nginx.conf

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  xxx.com;

        ssl_certificate      cert/xxx.pem;
        ssl_certificate_key  cert/xxx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

       # location / {
       #     root   html;
       #     index  index.html index.htm;
       # }
       
       # 這是用於轉發 其他埠的 如, IP:埠 進行訪問時可以通過設定代理變成 IP 訪問
       location / {
            proxy_pass http://127.0.0.1:65432;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

參考文件

點我傳送 - 證照購買

點我傳送 - 證照申請

點我傳送 - 證照安裝

點我傳送 - Nginx 安裝證照

相關文章