TLS協議版本包括TLS v1.0(已禁用)、TLS v1.1、TLS v1.2和TLS v1.3。TLS協議版本越高,HTTPS通訊的安全性越高,但高版本TLS協議對瀏覽器的相容性較差。本文介紹如何在阿里雲產品或自建Web伺服器上設定TLS協議版本,以平衡安全性與相容性。
認證部署在阿里雲產品
認證部署在以下阿里雲產品時,可通過控制台設定TLS協議版本。以下為簡要操作步驟,完整操作請單擊對應文檔連結查看詳情。
DDoS高防
操作步驟
登入DDoS高防控制台。
在頂部功能表列左上方處,根據DDoS高防產品選擇地區。
DDoS高防(中國內地):選擇中國內地地區。
DDoS高防(非中國內地):選擇非中國內地地區。
在左側導覽列,選擇。
-
在網域名稱接入頁面定位到目標網域名稱,在操作列下單擊編輯。
-
在編輯網站頁簽,修改國際標準HTTPS認證的TLS安全性原則。更多說明,請參見自訂伺服器HTTPS認證的TLS安全性原則。
Web Application Firewall
操作步驟
-
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地、非中國內地)。
-
在左側導覽列,單擊接入管理。
-
在CNAME接入頁簽,在接入列表上方,單擊預設SSL/TLS設定。
-
在預設SSL/TLS設定對話方塊,設定WAF中預設TLS協議版本,完成如下配置後,單擊確定。
配置項
說明
HTTPS認證上傳方式
上傳SSL認證。具體操作與網域名稱認證上傳方式相同,請參見上傳認證。
TLS協議版本
選擇要啟用的TLS協議版本。可選項:
-
支援TLS1.0及以上版本,相容性最高,安全性較低(預設)
-
支援TLS1.1及以上版本,相容性較好,安全性較好
-
支援TLS1.2及以上版本,相容性較好,安全性最高
如果要啟用TLS 1.3協議,選中開啟支援TLS1.3。
加密套件
選擇要啟用的加密套件。可選項:
-
全部加密套件,相容性較高,安全性較低(預設)
-
協議版本的自訂加密套件、請謹慎選擇,避免影響業務
關於支援自訂的加密套件,請參見WAF支援的加密套件。
-
更多內容,請參見通過CNAME接入為網站開啟WAF防護。
SLB 負載平衡
操作步驟
效能保障型Server Load Balancer執行個體在建立和配置HTTPS監聽時,支援選擇TLS安全性原則。在添加或配置HTTPS監聽時,可在SSL憑證引導頁,單擊進階設定後面的修改,在展開項中選擇TLS安全性原則。下面以傳統型負載平衡CLB為例介紹如何設定TLS協議版本。
Server Load Balancer產品家族包括應用型負載平衡ALB(Application Load Balancer)、網路型負載平衡NLB(Network Load Balancer)和傳統型負載平衡CLB(Classic Load Balancer),可根據實際需求選擇合適的負載平衡產品。
-
登入 傳統型負載平衡CLB控制台 。
-
在頂部功能表列處,選擇執行個體所屬的地區。
-
在實例管理頁面,找到目標執行個體,在操作列單擊監聽設定精靈。
-
在合約&監聽引導頁,將配置項中的選擇監聽協議選擇為HTTPS選項。完成其他參數配置後單擊下一步。如何配置其他參數,請參見添加HTTPS監聽。
-
在SSL憑證設定精靈,選擇已上傳的伺服器憑證,或者在選擇伺服器憑證時單擊新建伺服器憑證上傳一個伺服器憑證。認證相關資訊,請參見CLB認證管理。
-
單擊進階設定後面的編輯,選擇TLS安全性原則。
說明-
僅效能保障型執行個體支援選擇使用的TLS安全性原則。
-
TLS安全性原則包含HTTPS可選的TLS協議版本和配套的密碼編譯演算法套件,具體說明,請參見TLS安全性原則。
-
-
完成後續其他設定精靈頁面的配置後,單擊下一步。其他設定精靈的詳細操作,請參見為CLB執行個體添加HTTPS監聽。
更多內容,請參見添加HTTPS監聽。
CDN
操作步驟
執行操作前,請確保已成功配置HTTPS認證,操作方法請參見配置HTTPS認證。
預設開啟TLSv1.0、TLSv1.1、TLSv1.2和TLSv1.3版本。
登入CDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊HTTPS配置。
-
在TLS加密套件與協議版本配置地區,根據需要選擇加密套件和開啟對應的TLS版本。
例如,將 TLSv1.0 和 TLSv1.1 設定為未開啟,將 TLSv1.2 和 TLSv1.3 設定為已開啟。
支援如下加密套件,請根據需求選擇:
-
全部密碼編譯演算法套件組(預設):安全性較低,相容性較高,支援的密碼編譯演算法,請參見CDN預設支援的TLS密碼編譯演算法。
-
強密碼編譯演算法套件:安全性較高,相容性較低,支援的密碼編譯演算法:
-
TLS_AES_256_GCM_SHA384
-
TLS_AES_128_GCM_SHA256
-
TLS_CHACHA20_POLY1305_SHA256
-
ECDHE-ECDSA-CHACHA20-POLY1305
-
ECDHE-RSA-CHACHA20-POLY1305
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES128-CCM8
-
ECDHE-ECDSA-AES128-CCM
-
ECDHE-ECDSA-AES256-GCM-SHA384
-
ECDHE-RSA-AES256-GCM-SHA384
-
ECDHE-ECDSA-AES256-CCM8
-
ECDHE-ECDSA-AES256-CCM
-
ECDHE-ECDSA-ARIA256-GCM-SHA384
-
ECDHE-ARIA256-GCM-SHA384
-
ECDHE-ECDSA-ARIA128-GCM-SHA256
-
ECDHE-ARIA128-GCM-SHA256
-
-
自訂密碼編譯演算法套件:請根據需要選擇加密套件。
TLS協議版本說明請參見背景資訊。
-
更多內容,請參見配置TLS版本與加密套件。
DCDN
操作步驟
執行操作前,請確保已成功配置HTTPS認證,操作方法請參見配置HTTPS認證。
預設開啟TLSv1.0、TLSv1.1、TLSv1.2和TLSv1.3版本。
登入DCDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,單擊目標網域名稱對應的配置。
在指定網域名稱的左側導覽列,單擊HTTPS配置。
-
在TLS加密套件與協議版本配置地區,根據需要選擇加密套件和開啟對應的TLS版本。
預設情況下,TLSv1.0、TLSv1.1、TLSv1.2 和 TLSv1.3 已開啟。單擊修改配置可進行調整。
支援如下加密套件,請根據需求選擇:
-
全部密碼編譯演算法套件組(預設):安全性較低,相容性較高,支援的密碼編譯演算法,請參見DCDN預設支援的TLS密碼編譯演算法。
-
強密碼編譯演算法套件:安全性較高,相容性較低,支援的密碼編譯演算法:
-
TLS_AES_256_GCM_SHA384
-
TLS_AES_128_GCM_SHA256
-
TLS_CHACHA20_POLY1305_SHA256
-
ECDHE-ECDSA-CHACHA20-POLY1305
-
ECDHE-RSA-CHACHA20-POLY1305
-
ECDHE-ECDSA-AES128-GCM-SHA256
-
ECDHE-RSA-AES128-GCM-SHA256
-
ECDHE-ECDSA-AES128-CCM8
-
ECDHE-ECDSA-AES128-CCM
-
ECDHE-ECDSA-AES256-GCM-SHA384
-
ECDHE-RSA-AES256-GCM-SHA384
-
ECDHE-ECDSA-AES256-CCM8
-
ECDHE-ECDSA-AES256-CCM
-
ECDHE-ECDSA-ARIA256-GCM-SHA384
-
ECDHE-ARIA256-GCM-SHA384
-
ECDHE-ECDSA-ARIA128-GCM-SHA256
-
ECDHE-ARIA128-GCM-SHA256
-
-
自訂密碼編譯演算法套件:請根據需要選擇加密套件。
-
更多內容,請參見配置TLS版本與加密套件。
配置過程中如有疑問,請諮詢對應產品的商務經理。
認證部署在自建Web伺服器
認證部署在自建Web伺服器時,需修改伺服器設定檔中的ssl_protocols參數,以啟用或禁用特定的TLS協議版本。例如,僅支援TLS v1.1和TLS v1.2時,將ssl_protocols配置為TLSv1.1 TLSv1.2;需要啟用TLS v1.3時,將ssl_protocols配置為TLSv1.1 TLSv1.2 TLSv1.3。
下面以Nginx為例,介紹如何修改Nginx支援的TLS協議版本。
開啟Nginx設定檔
Nginx設定檔通常位於/etc/nginx/nginx.conf或/etc/nginx/conf.d/目錄下的某個.conf檔案中。使用以下命令開啟設定檔:
sudo nano /etc/nginx/nginx.conf
如果使用獨立的網站設定檔,路徑可能如下:
sudo nano /etc/nginx/sites-available/default
修改server塊中的SSL設定
找到與HTTPS相關的server塊,添加或修改ssl_protocols行來指定支援的TLS協議版本。以下樣本啟用TLS 1.2和TLS 1.3版本。請確保用戶端支援已配置的TLS協議版本,否則可能出現串連失敗。
server {
listen 443 ssl;
server_name yourdomain.com;
# SSL認證和密鑰路徑
ssl_certificate /path/to/your_certificate.crt;
ssl_certificate_key /path/to/your_private.key;
# 設定支援的SSL/TLS協議版本
ssl_protocols TLSv1.2 TLSv1.3;
# 可選:設定更安全的加密套件
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
location / {
root /var/www/html;
index index.html index.htm;
}
}
重啟Nginx服務
儲存更改後,執行以下命令重啟Nginx服務使配置生效:
sudo systemctl reload nginx
或使用:
sudo service nginx restart
完成以上步驟後,Nginx伺服器的TLS協議版本即修改成功。
驗證TLS協議版本是否設定成功
-
運行以下命令測試伺服器的TLS配置(將
your_ip替換為實際IP地址):sudo openssl s_client -connect your_ip:443 -
觀察輸出中的協議版本和認證資訊,確認TLS配置已生效。如果輸出中顯示預期的TLS協議版本資訊,則表示設定成功。
Post-Handshake New Session Ticket arrived: SSL-Session: Protocol : TLSv1.3 Cipher : xxx Session-ID: xxx Session-ID-ctx: Resumption PSK: xxx PSK identity: None PSK identity hint: None SRP username: None TLS session ticket lifetime hint: 7200 (seconds) TLS session ticket:
隨著安全標準的演化,建議定期審查和更新加密配置,以確保網站安全。