nginx出现SSL_do_handshake

最近项目中部分游戏配置地址和广告地址,需要隐藏具体的路径,因此快速使用nginx代理下。但是由于对应服务器设置了些配置,导致出现一些异常现象,本文针对这几个现象进行解决

1、直接重定向到http协议的路径(xxx.com/xxx/xxx/xxx...)

perl 复制代码
        location ~ ^/xxx/xxx/xxx/(?<gameName>[^/]+)/(?<endpoint>realization|config) {
            resolver 8.8.8.8;
            proxy_pass http://xxx.com/xxx/xxx/xxx/$gameName/$endpoint;
        }
  • 问题:

访问http://localhost:8801/xxx/xxx/xxx/coin-king/config, 页面出现了301重定向了,同时多了个路径https://xxx/xxx/xxx/coin-king/config ,没有达到隐藏路径效果

  • 原因:目标服务器设置了https强制重定向
  • 解决:
    • 要么更改目标服务配置,http不重定向到https
    • 直接改用代理到https的目标服务地址

2、直接重定向到https协议的对应路径(xxx.com/xxx/xxx/xxx...)

  • 问题: SSL_do_handshake() failed (SSL: error:0A000438:SSL routines::tlsv1 alert internal error:SSL alert number 80) while SSL handshaking to upstream, client: 172.17.0.1, server: , request: "GET /xxx/xxx/xxx/coin-king/config HTTP/1.1", upstream: "https:xxx.com/xxx/xxx/xxx/coin-king/config", host: "localhost:8088"
  • 原因:未能正常识别客户端主机名,无法正常进行ssl握手
  • 解决:
perl 复制代码
        location ~ ^/xxx/xxx/xxx/(?<gameName>[^/]+)/(?<endpoint>realization|config) {
            resolver 8.8.8.8;
            proxy_ssl_server_name on;
            proxy_pass http://xxx.com/xxx/xxx/xxx/$gameName/$endpoint;
        }

proxy_ssl_server_name on; 是 Nginx 配置指令之一,用于在代理请求时启用 SSL SNI(Server Name Indication)扩展。SNI 是 TLS 协议的一部分,它允许客户端在 SSL 握手期间指定要连接的目标服务器的主机名。

proxy_ssl_server_name on;主要用途:

  1. 虚拟主机支持 :当代理服务器后面有多个虚拟主机时,启用 proxy_ssl_server_name on; 是必要的。它将确保代理服务器将客户端请求的主机名传递给后端服务器,使后端服务器能够根据主机名提供正确的内容。
  2. HTTPS 代理 :当代理服务器用于将 HTTPS 请求转发到后端的安全服务器时,启用 proxy_ssl_server_name on; 是必要的。它允许代理服务器将客户端请求的主机名传递给后端服务器,以建立正确的 SSL 连接并返回正确的证书。
  3. 反向代理 :在反向代理场景中,启用 proxy_ssl_server_name on; 可确保代理服务器正确传递客户端请求的主机名给后端服务

3、参考

相关推荐
运维全栈笔记7 小时前
Ansible 自动化 Nginx 集群部署实战:动态 Inventory、滚动发布与 Role 工程化
nginx·自动化·ansible
阿标在干嘛1 天前
Nginx一个配置错误,流量损失30%!这是我们的完整排查记录
运维·nginx
IT菜鸟程2 天前
Ubuntu 下 apt 版 Nginx 升级为源码编译版本完整操作指南(1.24.0 → 1.30.4 实战)
linux·nginx·ubuntu
sbjdhjd2 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
NGINX开源社区2 天前
NGINX Gateway Fabric 2.6:F5 WAF for NGINX 集成 Gateway API
nginx·gateway·fabric
小白羊丨3 天前
HTTP/2 如何缓解 HTTP/1.1 阻塞;长连接对 Nginx 有什么影响?
网络协议·nginx·http
xixiaoyunya3 天前
Docker 容器化部署实战:从零搭建一套完整的 Nginx + Node.js + MySQL + Redis 项目环境
nginx·docker·node.js
SendTomo4 天前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
滨哥GPT4 天前
Codex新增文件上传后为什么小文件正常,大文件总失败?Multipart、Body Limit与Nginx限制排查
nginx·ai编程·文件上传·codex·multipart
come112344 天前
Nginx `location` 配置说明(后端开发版)
运维·nginx