怎么配置Web 服务器禁用全部不安全的旧版本加密协议如 SSLv3 实战

作者:袖梨 2026-07-11
最可靠方式是在Web服务器配置中显式排除SSLv2、SSLv3、TLSv1.0和TLSv1.1。Apache用SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1,Nginx、Tomcat、IIS均需白名单或注册表禁用,同步淘汰弱加密套件并验证生效。

直接在 Web 服务器配置中明确排除 SSLv2、SSLv3、TLSv1.0 和 TLSv1.1,是禁用不安全旧协议最可靠的方式。关键不是只写“启用哪些新协议”,而是用“全量排除”语法确保旧协议彻底失效。

Apache:用 SSLProtocol all -XXX 精准剔除

找到 HTTPS 对应的配置块(如 <VirtualHost *:443> 或全局 ssl.conf),在 SSLEngine on 下方添加:

  • SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
  • 该写法兼容 Apache ≥2.2.23,且比 TLSv1.2 白名单更稳妥——旧版本 Apache 可能忽略纯白名单配置
  • 确认 mod_ssl 已加载:LoadModule ssl_module modules/mod_ssl.so 未被注释

同步淘汰弱加密套件防降级

仅关协议不够,攻击者可能通过协议降级+弱算法组合绕过。在同一配置块中补充:

  • SSLCipherSuite HIGH:!aNULL:!MD5:!3DES:!RC4:!DES:!EXPORT:!PSK:!SRP:!CAMELLIA
  • HIGH 优先选 AES-GCM、CHACHA20 等现代套件
  • !RC4!3DES 直接封禁已证实存在 POODLE、SWEET32 等漏洞的算法

验证是否真正生效

改完必须验证,不能只靠重启:

  • 语法检查:apachectl configtesthttpd -t,输出 Syntax OK 才继续
  • 本地探活:openssl s_client -connect yoursite.com:443 -ssl3 应失败;-tls1_2 应成功并显示 Protocol : TLSv1.2
  • 线上扫描:SSL Labs 测试页 会明确标出 SSLv3/TLSv1.0 是否仍可协商

其他常见服务器简要对照

不同服务配置逻辑一致,核心都是“显式禁用”而非“隐式启用”:

  • Nginx:在 server 块中写 ssl_protocols TLSv1.2 TLSv1.3;(注意:Nginx 不支持 all -XXX 写法,必须白名单)
  • Tomcat:在 server.xmlConnector 中设 sslEnabledProtocols="TLSv1.2,TLSv1.3"
  • IIS:通过注册表禁用,路径 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsSSL 3.0Server,新建 DWORDEnabled = 0

相关文章

精彩推荐