有没有办法用 HTTPS 加密主机头?

Posted

技术标签:

【中文标题】有没有办法用 HTTPS 加密主机头?【英文标题】:is there a way to encrypt Host header with HTTPS? 【发布时间】:2021-10-23 08:33:35 【问题描述】:

我所在国家/地区的 ISP 出于政治原因阻止了我的网站。

他们第一次封了我的网站IP,所以每次封IP我都换一个新的IP,这样就可以避免被封了。

但是现在,他们通过屏蔽主机名来屏蔽我的网站,所以所有 IP 都被屏蔽了。

或任何人有想法避免阻塞

【问题讨论】:

【参考方案1】:

HTTP 主机标头在 HTTPS 中加密,但 SSL 证书主机名(服务器名称指示)不是。所以你必须绕过基于 SNI 的 HTTPS 过滤。

有关详细信息,请参阅此文档Efficiently Bypassing SNI-based HTTPS Filtering

【讨论】:

【参考方案2】:

有没有办法用 HTTPS 加密主机头?

使用 HTTPS 时会加密主机标头。这意味着他们不能基于此进行阻止。他们可能会使用基于 DNS 的阻止或使用深度数据包检测的基于 SNI 的阻止。

通常不能通过简单地更改您的网站(更改域名除外)来绕过两者,即需要使用不同的 DNS 服务器、使用 *** 或类似的客户端支持来绕过阻止。虽然理论上 ESNI(加密的 SNI)可能是一种选择,但有些国家,如中国 simply block such traffic they can not analyze。有fantastic research about bypassing censorship in various countries 并且有一些技巧可以在服务器端使用。但是细节在很大程度上取决于在您的特定情况下阻止的确切工作方式 - 这是未知的。

【讨论】:

我认为阻止不是基于 DNS 的阻止,因为许多访问者使用谷歌 DNS (8.8.8.8)。有什么办法可以避免基于 SNI 的阻塞? @BaselKhatib:“有什么办法可以避免基于 SNI 的阻塞?” - 请参阅我的回答的第二段。【参考方案3】:

https://blog.cloudflare.com/encrypted-sni/

也许 TLS 1.3 可以帮助加密 SNI

【讨论】:

以上是关于有没有办法用 HTTPS 加密主机头?的主要内容,如果未能解决你的问题,请参考以下文章

iis 配置多域名,多https

服务器上必须保留空主机头,如何放置恶意域名指向呢?

IIS7.5,IIS8.0批量添加主机头

PhantomJS 主机文件更改或主机头

在项目中如何把http的请求换成https

IIS使用Tip