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

Nginx代理对接TLSv1上游SSL握手报错peer closed connection问题求助

问题根因
  • 上游旧服务仅支持TLSv1协议,且使用已被现代系统默认禁用的弱加密套件RC4-MD5,证书签名算法为已被淘汰的md5WithRSAEncryption。即使配置了proxy_ssl_verify off,Nginx调用的OpenSSL层在握手阶段就会因为算法不符合安全策略直接终止连接,不会走到证书校验步骤。
  • 你当前配置中仅声明了允许上游使用TLSv1,但未指定兼容旧服务的弱加密套件,也没有降低OpenSSL的安全级别,导致握手失败。
解决方案

步骤1:修改Nginx配置

调整/net/ location块的上游SSL相关配置,强制使用TLSv1协议、允许弱算法套件:

location /net/ {
    proxy_ssl_name endp.example.org;
    proxy_ssl_server_name on;
    proxy_ssl_verify off;
    # 删除无用的proxy_ssl_trusted_certificate配置,关闭校验时该配置不生效
    # 强制上游仅使用TLSv1协议,避免协商高版本TLS直接失败
    proxy_ssl_protocols TLSv1;
    # 降低OpenSSL安全级别到最低,允许旧服务使用的RC4-MD5套件和MD5签名算法
    proxy_ssl_ciphers DEFAULT:@SECLEVEL=0:RC4-MD5;
    proxy_set_header Host endp.example.org;
    proxy_set_header X_FORWARDED_PROTO https;
    proxy_pass https://endp.example.org/;
}

修改完成后先校验配置合法性:nginx -t,校验通过后重载配置:nginx -s reload。

步骤2:调整系统加密策略(若步骤1未生效)

若修改Nginx配置后仍然报错,说明系统级加密策略默认禁用了弱算法,需要调整:

  • 若为CentOS/RHEL 8及以上版本:执行命令 update-crypto-policies --set LEGACY,执行完成后重启Nginx生效。
  • 若为Debian/Ubuntu版本:编辑/etc/ssl/openssl.cnf文件,找到CipherString配置项,修改为DEFAULT@SECLEVEL=0,保存后重启Nginx生效。
注意事项

该方案为临时过渡方案,仅用于对接待升级的旧服务。待旧服务升级支持TLSv1.2及以上版本、使用强加密算法和安全的证书签名算法后,请及时回滚上述配置,避免引入安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:36:03