美文网首页网络
【HTTPS】SNI有关的HTTPS报错问题处理

【HTTPS】SNI有关的HTTPS报错问题处理

作者: Bogon | 来源:发表于2024-09-18 11:21 被阅读0次
$ sudo /usr/local/openresty/nginx/sbin/nginx -V 2>&1 | sed 's/ --/\n--/g' | egrep --color '.*path.*|$'
nginx version: openresty/1.19.9.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1l  24 Aug 2021
TLS SNI support enabled
configure arguments:
--prefix=/usr/local/openresty/nginx
--with-debug
......
--with-stream
--with-stream_ssl_module
--with-stream_ssl_preread_module

image.png

需要注意的是,有的同学问到我们在https 请求的URL中已经有了需要请求的服务器名在请求的Header中也有设置,为什么这里还需要设置, 这里需要理解2个点:

  1. TLS协议是在HTTPS层下面的是没办法获取到https层面的相关信息的。

  2. 我们看看client和server建立Https连接的过程: 先建立tcp连接 -->经过TLS握手-->实现https通信-->进而发送HTTP请求 , 从请求过程来看在TLS握手阶段, server端'也没有办法获取七层HTTP报文的信息

对于Nginx,如果客户端在ssl握手阶段未携带server_name Nginx就会去找默认server,然后使用默认server的ssl证书来响应, 因为我们使用的泛域名证书,默认server的ssl证书也是可以匹配上的。

服务端通过SNI(Server Name Indication)来区别虚拟主。

在某些场景中,需要获取ClientHello中的SNI字段来作为一个必要条件, 比如用NGINX stream对HTTPS流量做4层代理时,客户端ClientHello中没有携带SNI,则会造成一个通过代理握手失败的局面。

在利用NGINX stream做正向代理时,NGXIN服务器需要获取客户端想要访问的目的域名,利ngx_stream_ssl_preread_module模块在不解密的情况下拿到ClientHello报文中SNI才能实现代理的正常功能。

参考

了解Https SNI 以及 Win XP 对https支持情况测试
https://mp.weixin.qq.com/s/ff4-FvgX1lD0edWRKde_Fw

直接用IP访问知乎,我发现了一个秘密
https://mp.weixin.qq.com/s/qxjiix7z9stauONxWUGgrQ

都用HTTPS了,还能被查出浏览记录?
https://mp.weixin.qq.com/s/TJDCXRvibNIPeKck6e1q9w

CentOS 7安装SNI Proxy对HTTPS站点进行反向代理
https://mp.weixin.qq.com/s/Gk5_oklEwrY-BG6j-pBYug

处理 一个SNI 引发“血案”的全过程
https://mp.weixin.qq.com/s/GY9ZYKEoECfM6YpfvV0duw

Apisix 迁移之TLS的问题
https://mp.weixin.qq.com/s/ln9lYYAKAaBsH-uI-PuDSg

HTTPS请求出现received fatal alert: internal_error的问题分析排查
https://blog.csdn.net/xiao__jia__jia/article/details/123752327

HTTPS握手失败 javax.net.ssl.SSLException: Received fatal alert: internal_error
https://www.codetd.com/article/9814188

APISIX网关在雪球生产实践
https://blog.csdn.net/singgel/article/details/122701839

SNIproxy
https://www.kancloud.cn/panxin20/notes/2648800

SNI Proxy:历史中的名字基于代理方案
https://blog.csdn.net/gitblog_00924/article/details/141632410

说说SNI Proxy
http://blog.ttionya.com/article-1851.html

CentOS下安装 SNIProxy 实现 hosts 代理
https://coderschool.cn/2284.html

sniproxy 服务器是什么?
https://worktile.com/kb/ask/1363661.html

相关文章

  • 有关https

    加密类型 首先了解一下两种加密类型 对称类型 如AES DES 非对称加密 如RSA 对称加密 对称加密很好理解...

  • 有关ios https配置问题

    关于https的简介和说明我都是参考下面的文章:(谢谢文章作者) 1.http://my.oschina.net/...

  • 关于 https 的 SNI(Sever Name Indica

    1 虚拟主机 要讨论 SNI 的问题,首先需要来介绍一个虚拟主机的概念。 1.1 概念 虚拟主机一般使用的技术为软...

  • HTTPS握手失败的案例之SNI

    问题背景: 在听云测试业务,发现很多安全频道出错,分析失败的点,大部分位于听云一个检测点,检测的浏览器是ie8,分...

  • Https下载报错

    $ git clone https://172.16.1.100/github/myself.gitCloning...

  • 有关于https

    流程理解如下: 向CA权威证书机构,申请ssl证书(绑定信息,如域名公司信息等) 在服务器上使用ssl证书(ngi...

  • HttpClient请求https接口报错处理

    原出处:https://blog.csdn.net/qq_36361060/article/details/112...

  • 有关https的苹果证书配置问题

    你们的项目使用的是http还是https呢?如果使用 https,你们有遇到过请求中断的问题吗?说说我们使用htt...

  • cURL处理https

    下载crt后,使用--cacert参数即可。需要认证,可以使用完整URL: https:// : @:...

  • Charles抓取https请求问题处理

    Charles是MAC上使用简单功能强大的抓包工具,网上关于此工具的使用方法很多。在抓取http请求的时候,MAC...

网友评论

    本文标题:【HTTPS】SNI有关的HTTPS报错问题处理

    本文链接:https://www.haomeiwen.com/subject/rljnljtx.html