0

我最近開始在我的一個網站上爲「嚴格運輸安全」標題服務。我沒有預料到的一個問題是,我的SSL證書只覆蓋mydomain.com,所以如果用戶訪問www.mydomain.com,而不是被重定向(以前會發生),他們會看到他們的瀏覽器提供的安全錯誤這是由於新頭部不允許所有非https通信。啓用HSTS後是否可以從非安全連接重定向到安全連接?

由於各種原因,我使用的是多域名證書,因此不能簡單地購買添加了「www」的新證書。

我明白爲什麼這是預期的行爲,但我想知道是否有反正我重定向www到非www儘管www沒有一個有效的證書在www域?

如果它有什麼區別,我的服務器正在運行Ubuntu。

+1

你在HSTS頭上有'includeSubDomains'屬性嗎?如果是這樣,刪除它應該防止example.com的HSTS策略也適用於www.example.com。 –

+0

@AndyBrown啊哈。是的,我的頭是目前'嚴格的運輸安全:最大年齡= 31536000; includeSubDomains;」。刪除此屬性是否會造成安全漏洞? –

+0

我會想,如果你在www子域名上的所有內容都是重定向到安全站點,那麼就沒有什麼可以破解的。儘管如此,不要聽我的話......順便說一下,BTW瀏覽器積極地緩存HSTS標題,所以如果你改變你的標題,那麼你必須確信瀏覽器正在使用你的更新版本。 –

回答

1

正如在評論中提到的,如果您在HSTS標頭中包含了子域名,那麼這將導致您遇到問題,因爲擁有此標頭的瀏覽器將嘗試訪問將提供證書錯誤的https://my.yourdomain.com(即通過HTTPS)。

說實話,最好的做法是包括mydomain.com和www.domain.com,如果任何證書和大多數CA都將包含這兩個域以相同的價格。這對於多域或通配符證書不起作用,但仍然是最佳實踐,所以應該儘可能地完成。

您當然可以刪除您的HSTS頭部的includeSubDomains部分,正如評論中所建議的那樣,這將解決問題(一旦任何緩存響應由maxage時間給出 - 看起來距離您的示例爲一年)然而這裏還有其他風險。例如,某人可以設置wwww.mydomain.com(帶有4個w)或secure.mydomain.com或任何其他合法的子域,並通過http而不是https提供,並且訪問者可能不會注意到。此外,子域名可能會訪問或能夠爲其使用路徑屬性的域所在的域設置Cookie。這些都是邊緣案例,如果沒有includeSubDomains,甚至沒有includeSubDomains,它仍然提供了大量的保護,所以即使沒有includeSubDomains,最好還是包含它,但是如果要開啓HSTS,那麼最好能夠完全打開它。

無論如何,無論風險如何,我們仍建議:1)通過HTTPS服務www子域名,因爲有些人或軟件會嘗試使用此域名並避免任何問題 - 無論是使用HSTS與否,以及2)使用HSTS,理想情況下儘可能使用includeSubDomains。

+0

感謝您的詳細解釋。在我的特殊情況下,我目前正在使用多域名證書,由於服務器設置,我現在無法更改。我認爲,暫時我會放棄包括子域名,並計劃在我改善證書情況後恢復它。 –