修復方案:禁用弱加密套件(Weak Cipher Suites)
1. 確認當前使用的加密套件
在修復前,先檢查應用程序或服務器當前支持的加密套件:
- OpenSSL (適用于HTTPS/TLS服務)
openssl ciphers -v 'ALL:COMPLEMENTOFALL' | sort
- Nginx/Apache/Tomcat
檢查配置文件中的ssl_ciphers
或SSLCipherSuite
設置。 - Java 應用(Tomcat/Jetty/Spring Boot)
檢查server.ssl.ciphers
或SSLEnabledProtocols
配置。
2. 禁用不安全的加密套件
根據不同服務器/應用,修改配置以僅允許強加密套件(如AES-GCM、CHACHA20、ECDHE密鑰交換)。
(1)Nginx 配置示例
ssl_protocols TLSv1.2 TLSv1.3; # 禁用 TLS 1.0/1.1
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';
ssl_prefer_server_ciphers on;
? 推薦套件(優先選擇前向保密和現代算法):
TLS_AES_256_GCM_SHA384
(TLS 1.3)ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
(2)Apache 配置示例
SSLProtocol TLSv1.2 TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder on
(3)Tomcat (server.xml)
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"sslEnabledProtocols="TLSv1.2,TLSv1.3"ciphers="TLS_AES_256_GCM_SHA384,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384" />
(4)Java 應用(JVM 參數)
如果使用 Java,可在啟動時禁用弱加密:
java -Djdk.tls.disabledAlgorithms="SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224" ...
3. 驗證修復是否生效
使用工具檢查加密套件是否已更新:
- OpenSSL 測試
openssl s_client -connect example.com:443 -tls1_2 -cipher 'ECDHE'
- 在線檢測工具
- SSL Labs (Qualys)
- testssl.sh
4. 額外加固建議
- 啟用 HSTS(強制 HTTPS)
- 禁用 TLS 1.0/1.1(僅允許 TLS 1.2+)
- 使用證書密鑰 ≥ 2048 位(RSA/ECDSA)
- 定期更新 OpenSSL/Nginx/Apache 以修復漏洞
📌 注意:修改后重啟服務生效(如 nginx -s reload
或 systemctl restart apache2
)。
如果應用依賴第三方庫(如舊版 OpenSSL),可能需要升級依賴項以支持現代加密協議。
希望這份方案能幫助您修復弱加密問題!如果有特定環境需求,可以提供更多細節以便進一步優化建議。 🚀