我如何发送网站stream量到一个HTTP端口
如果我有严格的运输安全执行
例如,我有Strict-Transport-Security强制执行
如果我embedded一个链接,导致http端口8000
访问者被引导到https端口8000
我需要的结果是
如果我embedded一个链接,导致http端口8000
访问者被引导到http端口8000
谢谢。
您误解了HSTS(HTTP严格传输安全性)的工作方式。 如果您启用此标头,则支持HSTS的客户端浏览器应拒绝在任何端口上与您的域(以及潜在的所有子域)build立纯正的HTTP连接。
如果用户尝试连接到http://www.example.com/ (隐含端口80),则浏览器将自动切换到此https://www.example.com/ (隐含端口443)
如果用户尝试连接到http://www.example.com:8000/ (或80/443以外的任何端口),则浏览器将自动将其更改为https://www.example.com:8000/ (或者指定的端口)。
如果启用HSTS,则必须准备好通过安全连接为您的域提供所有 HTTP通信。
我不知道你所做的是为了解决这个问题,但是不pipe它是否有效,都是违反了HSTS规范,即使现在有效,也可能在未来停止工作。
正确的答案是正确configuration端口8000通过安全连接提供stream量。
有关详细信息,请参阅RFC第8.3节https://tools.ietf.org/html/rfc6797#section-8.3
–
编辑:只是一个额外的澄清的情况下,这在你的情况下,
请注意,HSTS不关心您使用的服务器或IP地址。 一旦您从任何地方开始为特定域名提供标题,则必须通过安全连接向所有服务器上的该域名提供所有 HTTPstream量。
另一方面,如果你有一个共享服务器托pipe多个域,那么没有服务于HSTS头的域可以继续通过来自同一服务器的普通HTTP进行操作。 HSTS关心域,而不是服务器。
因此,如果由于某种原因您在8000端口上的服务绝对无法通过HTTPS进行操作,那么另一种select是将其托pipe在不同的域或子域上。 如果您select使用子域,则需要确保HSTS标头尚未设置为包含子域。