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

Nginx代理HTTP转HTTPS报ssl3_get_record:wrong version number错误如何解决

问题根因

你遇到的SSL握手错误核心原因是upstream配置未指定上游HTTPS服务的端口,Nginx默认会使用80端口对接上游,而你用proxy_pass https://stage指定了用HTTPS协议请求上游,相当于用HTTPS协议访问上游的HTTP 80端口,握手自然失败,错误日志里的upstream: "https://IP:80/"也明确验证了这一点。

修复方案
  1. 修正upstream配置,添加上游HTTPS服务对应的443端口:
upstream stage {
   server example.com:443;
}
  1. 若上游HTTPS服务使用自签名证书,需要在location块中补充SSL相关配置(使用CA机构签发的可信证书可跳过此步):
# 关闭 upstream 证书校验,生产环境建议配置proxy_ssl_trusted_certificate指定可信证书路径替代
proxy_ssl_verify off;
# 开启SNI支持,适配上游多域名虚拟主机场景
proxy_ssl_server_name on;
# 指定SSL握手时使用的域名,和上游服务证书绑定的域名保持一致
proxy_ssl_name example.com;
  1. 完整修正后的配置参考:
upstream stage {
   server example.com:443;
}
server {
    server_name IP;
    listen 80;
    
    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_set_header protocol Token;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      # 自签名证书补充以下三行,可信证书可省略
      proxy_ssl_verify off;
      proxy_ssl_server_name on;
      proxy_ssl_name example.com;
              
      proxy_pass https://stage; 
   }
}
配置生效步骤

执行nginx -t校验配置语法是否合法,返回success后执行nginx -s reload重载Nginx配置即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:27:03