我在 Nginx.conf 中为我的域名设置了 hsts。它会将我的网站重定向到主端口 80 的 https。但我不希望重定向发生在我的其他端口上。我该怎么做?
答案1
简化:HSTS 是域范围内的政策,禁止在您的域上使用纯 http。无论您想通过纯 http 访问哪个端口,无论是默认端口 80 还是其他端口(如 8001),该政策都是如此。
如果你请求你的域名,
http://www.example.com
则通过将 uri 重写为
https://www.example.com
在端口 80 以外的其他端口上,通过将普通 http 请求重写为 https 但保留非标准端口来实现,
http://www.example.com:8001/page.html
应该重写为
https://www.example.com:8001/page.html
因此,只要您配置端口 8001 以支持 TLS 就可以了。
https://www.rfc-editor.org/rfc/rfc6797
The UA MUST replace the URI scheme with "https" [RFC2818], and
if the URI contains an explicit port component of "80", then
the UA MUST convert the port component to be "443", or
if the URI contains an explicit port component that is not
equal to "80", the port component value MUST be preserved;
otherwise,
if the URI does not contain an explicit port component, the UA
MUST NOT add one.
NOTE: These steps ensure that the HSTS Policy applies to HTTP
over any TCP port of an HSTS Host.