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

Nginx反向代理WebFlow站点出现SSL握手失败问题求助

Nginx反向代理WebFlow站点遭遇SSL握手失败问题

问题详情

已配置Nginx反向代理,将https://webflow.example.com(浏览器可正常访问,无SSL错误)代理到https://example.com/blog,但访问目标地址时触发SSL握手失败错误。

当前Nginx配置:

server {
  listen 80;
  listen [::]:80; 

  server_name example.com;


  location /blog/ {
    proxy_pass https://webflow.example.com/;

 }

}

报错信息:

SSL_do_handshake() failed (SSL: error:0A000410:SSL routines::sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream, client: 10.123.196.124, server: linkme.dev, request: "GET /blog/ HTTP/1.1", upstream: "https://172.67.4.111:443/", host: example.com

解决办法

1. 指定兼容的SSL协议与密码套件

WebFlow服务器大概率只支持现代TLS版本,默认Nginx配置可能包含过时协议(如SSLv3、TLSv1.0)导致握手失败。在location块中添加以下配置:

location /blog/ {
    proxy_pass https://webflow.example.com/;
    proxy_ssl_protocols TLSv1.2 TLSv1.3;
    proxy_ssl_ciphers HIGH:!aNULL:!MD5;
}
  • proxy_ssl_protocols:限定仅使用安全的TLS版本,排除过时协议。
  • proxy_ssl_ciphers:配置符合现代安全标准的密码套件,匹配WebFlow服务器要求。

2. 启用SNI支持

代理HTTPS上游时,Nginx需发送SNI信息,否则上游服务器无法返回对应域名的证书。显式启用SNI:

location /blog/ {
    proxy_pass https://webflow.example.com/;
    proxy_ssl_server_name on;
}

proxy_ssl_server_name on会让Nginx在握手时传递上游域名,确保WebFlow返回正确证书。

3. 升级Nginx版本

旧版Nginx对TLSv1.3或SNI的支持可能存在缺陷,建议升级到1.18及以上稳定版本,提升现代SSL协议兼容性。

4. 验证证书信任(测试用)

若浏览器可访问但Nginx报错,可能是Nginx信任池与浏览器不一致。可临时禁用证书验证排查问题(生产环境禁止使用):

location /blog/ {
    proxy_pass https://webflow.example.com/;
    proxy_ssl_verify off;
}

若问题解决,需将WebFlow的根证书添加到Nginx信任池中,确保生产环境的安全性。

总结

优先尝试添加proxy_ssl_protocols和proxy_ssl_server_name配置,这是解决SSL alert 40的最常见方案。若无效,再排查Nginx版本和证书信任问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:22:49