天天看點

Nginx之5金鐘罩 - (SSL)

SSL加密連接配接

在此分享前,思考幾個問題。

Q1.為什麼伺服器要啟用SSL加密資料連接配接?

Q2.如何使用SSL?

Q3.啟用SSL的優勢、劣勢?

A1. HTTP協定在傳輸過程中,對于資料是不加密的,如果有惡意截取、僞造的情況是非常危險的。HTTPS就是基于HTTP協定,通過SSL或TLS提供加密處理資料、驗證對方身份以及資料完整性保護。目前Chorme浏覽器已經預設将HTTP的站點當成不安全的網站類型,全站SSL将會而且必須是發展的趨勢。

A2. 流程很簡單,申請SSL證書,配置應用伺服器支援SSL,測試網站SSL有效性。

A3. SSL優勢對伺服器及用戶端互動的資料進行加密,保護資料安全。但凸顯出來對性能是有一定的下降的(因為傳統的TCP連接配接經曆了三次握手即可傳輸資料,但在HTTPS場景下,還需要對RSA簽名校驗,對ECC秘鑰交換、計算、加密、解密等等)。但在不同場景,HTTP及HTTPS有不同的應用,例如在檔案分發隻讀的情況,無需啟用HTTPS,例如在購物車等場景,必須啟用HTTPS。

功能配置

1.申請SSL證書,我們采用阿裡雲雲盾的免費單域名證書。然後下載下傳證書存放到ECS伺服器上。

Nginx之5金鐘罩 - (SSL)

2.在Nginx上,ngx_http_ssl_module子產品為HTTPS提供必要的支援,預設是不開啟的,如果需要Nginx支援SSL,需要在編譯時加入--with-http_ssl_module編譯選項,該子產品依賴OpenSSL庫。編輯nginx.conf檔案增加SSL相關的配置資訊。

server {
    listen 443 ssl;
    server_name nginx.yekangming.com;
    ssl_certificate /data/certificate/public.crt;
    ssl_certificate_key /data/certificate/private.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        root /data/webroot/nginx;
        index index.html;
    }
}           
ssl on; #舊版本的寫法           

配置詳解

ssl_certificate /data/certificate/public.crt; #證書

ssl_certificate_key /data/certificate/private.key; #私鑰

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #協定

ssl_ciphers HIGH:!aNULL:!MD5; #加密套件

通路效果

在Chorme浏覽器通路,可以在左上角見到有鎖頭代表已經加密了連接配接使用了SSL。

Nginx之5金鐘罩 - (SSL)

小技巧

使用者在通路時習慣性隻會輸入域名,而我們浏覽器則會自動補齊協定

http://

一般情況下都會配置跳轉,讓使用者的請求從HTTP從定向到HTTPS。

繼續閱讀