Hsts
hsts 在主埠 80 上,不在其他埠上
我在網站http://server.mydom.tld:80上為我的域設置了 hsts,因此瀏覽器轉到埠 443 上的埠https://server.mydom.tld
但是,我還有其他網路伺服器,在其他埠上執行。因此,當我轉到http://server.mydom.tld:8888>時,它會被轉發到<https://server.mydom.tld:8888,但該伺服器未執行 https,因此請求失敗。
是按照規範嗎?
我注意到我沒有在http://mydom.tld>或<http://www.mydom.tld上執行 hsts ,這可能是一個錯誤。
該怎麼辦?
是的,這是故意的。RFC 6797規定:
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.
您應該在不同的域上執行純 HTTP 服務,或者更好的是,使用 HTTP+TLS 伺服器作為內部純 HTTP 服務的反向代理。