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

修改Host HTTP Header绕过SNI访问文件失败,求问题排查

排查SNI场景下连接重置问题的几个关键点

看了你尝试的几种方法,连接重置(errno=104)通常是服务器主动断开了连接,除了SNI配置外,还有几个容易踩坑的地方,咱们一个个来排查:

1. curl命令的URL使用错误

你当前的curl命令里,URL用的是https://172.1.1.61:443/...,虽然加了--resolve参数把mydomain.com:443指向指定IP,但直接访问IP的话,curl不会自动把Host头设为mydomain.com——而SNI不仅要求TLS握手时指定服务器名,HTTP请求的Host头也必须匹配目标域名。

修正后的curl命令应该这样写:

curl -I --resolve mydomain.com:443:172.1.1.61 https://mydomain.com/FederationMetadata/2007-06/FederationMetadata.xml -v

这个命令会用域名发起请求,自动带上Host: mydomain.com的头,同时强制把域名解析到你指定的IP,完美契合SNI服务器的要求。

2. 服务器端的访问控制限制

虽然openssl能拿到有效证书,但连接被重置,大概率是服务器有防火墙、WAF或者源IP白名单限制,你的客户端IP不在允许访问的列表里。

你可以试试从同一个网段的其他机器发起请求,或者联系服务器管理员确认:你的IP是否被允许访问这个STS服务?是否有端口或路径的访问规则?

3. 目标路径或端口的正确性

确认两个关键点:

  • 目标服务确实在443端口监听(有些STS服务可能部署在非标准端口,比如8443);
  • /FederationMetadata/2007-06/FederationMetadata.xml这个路径完全正确(注意大小写、版本号是否和服务器实际部署的一致)。

可以用openssl手动发送HTTP请求测试:
先建立TLS连接:

openssl s_client -connect 172.1.1.61:443 -servername mydomain.com

连接成功后,输入以下内容(注意最后要空一行):

HEAD /FederationMetadata/2007-06/FederationMetadata.xml HTTP/1.1
Host: mydomain.com
Connection: close

如果服务器返回404或者其他HTTP状态码,说明路径有问题;如果还是重置,那大概率是访问控制的问题。

4. 浏览器插件的配置细节

Modify Header Value插件需要注意两个点:

  • 确保访问的URL是https://172.1.1.61/...,并且插件已经正确添加Host: mydomain.com的请求头;
  • Chrome会因为证书域名(mydomain.com)和访问IP不匹配而拦截请求,你需要手动信任这个证书(在浏览器提示“不安全”时,选择“继续访问此网站”);
  • 部分插件只修改HTTP头,不会影响TLS握手时的SNI扩展——如果是这个情况,你可以试试用Chrome的--host-resolver-rules启动参数强制解析域名到指定IP,比如:
    chrome.exe --host-resolver-rules="MAP mydomain.com 172.1.1.61"
    
    这样访问https://mydomain.com/...时,Chrome会自动用指定IP发起请求,同时TLS握手时的SNI和HTTP Host头都会正确设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:47:31