如何禁用不安全的旧版协议(如 TLSv1.0/1.1)和弱加密套件?
随着网络安全威胁的不断升级,早期的 SSL/TLS 协议版本(如 SSLv2/v3、TLS 1.0 和 TLS 1.1)由于存在根本性的设计缺陷,已被主流标准(如 PCI DSS、NIST、RFC 8996)正式弃用。这些旧版协议容易受到 BEAST、POODLE 等降级攻击,且不支持现代强加密算法。为了保障数据传输的绝对安全,Web 服务器管理员必须主动干预,强制禁用这些不安全的协议与弱加密套件。
在 Nginx 中禁用旧版协议并加固套件
在 Nginx 的配置文件中,您可以通过修改 ssl_protocols 指令,仅保留安全的 TLS 1.2 和 TLS 1.3 版本。同时,配合 ssl_ciphers 指令剔除弱算法,并强制使用服务器端的首选套件。推荐的配置如下:
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;
ssl_prefer_server_ciphers on;
上述配置不仅禁用了所有旧版协议,还优先选择了支持前向保密(PFS)和 AEAD 模式的强加密套件。
在 Apache 中禁用旧版协议并加固套件
对于 Apache 服务器,您可以在 SSL 配置文件中使用 SSLProtocol 指令来剔除旧版协议。推荐的配置如下:
SSLProtocol -all +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
此配置通过 -all 关闭所有协议,再显式启用安全的 TLS 1.2 和 TLS 1.3,同时限制了加密套件的列表。
必须剔除的弱加密套件特征
在配置加密套件时,除了指定推荐的强算法外,还应明确排除以下不安全的特征:RC4、DES、3DES、EXPORT、MD5、SHA1、aNULL、eNULL、LOW 和 MEDIUM。这些算法由于密钥长度过短或存在已知漏洞,极易被现代计算能力破解。
验证配置是否生效
配置修改完成并重载服务器后,务必进行严格的验证。您可以使用 OpenSSL 命令行工具测试 TLS 1.2 握手是否成功,并观察协商出的加密套件是否符合预期。此外,强烈建议使用业界权威的在线扫描工具(如 SSL Labs 的 SSL Test)对公网服务进行全面扫描。该工具会明确标出服务器是否仍支持不安全协议与弱套件,并给出详细的安全评级。
注意事项:客户端兼容性评估
在全面禁用旧版协议前,需要评估您的目标用户群体。虽然全球 95% 以上的现代浏览器和设备已支持 TLS 1.2 及以上版本,但部分老旧设备(如 Android 4.x、旧版 Windows 或 Java 7u95 之前的环境)可能无法建立连接。建议在生产环境调整前,先在灰度节点或测试环境验证客户端的兼容性。若确实需要兼容极个别老旧设备,可临时保留 TLS 1.2 配合强加密套件,但绝不应降级到 TLS 1.1 及以下版本。
评论已关闭