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伺服器上。
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。
小技巧
使用者在通路時習慣性隻會輸入域名,而我們浏覽器則會自動補齊協定
http://一般情況下都會配置跳轉,讓使用者的請求從HTTP從定向到HTTPS。