Hsts

hsts 在主埠 80 上,不在其他埠上

  • December 13, 2019

我在網站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&gt;&gt;

     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 服務的反向代理。

引用自:https://serverfault.com/questions/882026