You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GTmetrix检测网站遇SSL异常:cURL error 35及握手失败求助

解决GTmetrix SSL握手失败(SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure)问题

我之前帮朋友排查过一模一样的GTmetrix测试报错,这种SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure本质是你的服务器SSL/TLS配置和GTmetrix的测试环境不兼容导致的,换测试地点或重试通常解决不了核心问题,给你整理几个针对性的排查修复步骤:

  • 检查并更新TLS协议版本支持
    GTmetrix的测试服务器已经淘汰了旧的SSLv3、TLS1.0和TLS1.1协议,你需要确保服务器只启用现代TLS版本:

    • Nginx配置示例:
      ssl_protocols TLSv1.2 TLSv1.3; # 只保留TLS1.2和1.3
      
    • Apache配置示例:
      SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 # 禁用旧协议
      

    修改后记得重启Web服务器。

  • 调整密码套件为现代兼容版本
    过时的密码套件也会导致握手失败,建议使用GTmetrix支持的主流套件:

    • Nginx推荐配置:
      ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
      ssl_prefer_server_ciphers off; # 让客户端选择更优的套件
      
  • 验证SSL证书链完整性
    证书链不完整是常见的握手失败原因,你需要确保服务器配置了完整的证书链(包含根证书和中间证书):

    • Nginx中通过ssl_trusted_certificate指定完整的证书链文件;
    • Apache新版本可以直接将中间证书追加到域名证书文件中,旧版本用SSLCertificateChainFile指定中间证书路径。
      可以用openssl s_client -connect yourdomain.com:443命令测试,输出中如果出现Verify return code: 0 (ok)说明证书链没问题。
  • 排查防火墙/WAF拦截
    有些服务器的防火墙或WAF会拦截GTmetrix的测试IP,或者限制SSL握手请求频率。你可以暂时关闭WAF测试一次,如果测试正常,就需要把GTmetrix的IP段添加到白名单中。

  • 确认SNI配置(虚拟主机场景)
    如果你的服务器是虚拟主机(多个域名共享一个IP),必须确保开启SNI支持:

    • Nginx默认支持SNI,无需额外配置;
    • Apache需要确保启用mod_ssl模块,并且每个虚拟主机都正确配置了SSLCertificateFile和SSLCertificateKeyFile。

修复完配置后,先用openssl s_client -connect yourdomain.com:443 -tls1_2和openssl s_client -connect yourdomain.com:443 -tls1_3命令测试握手是否成功,确认没问题后再重新运行GTmetrix检测。

内容的提问来源于stack exchange,提问作者lmfnoah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:12:54