通過開啟HSTS(HTTP Strict Transport Security)功能,您可以強制用戶端(例如:瀏覽器)使用HTTPS與伺服器建立串連,降低第一次訪問請求被攔截的風險。
前提条件
背景信息
當您全站使用HTTPS請求時,在瀏覽器輸入或直接單擊HTTP連結,伺服器會將該HTTP請求301或302重新導向到HTTPS。該操作過程中請求可能被攔截,導致重新導向後的請求未發送到伺服器,該問題可以通過HSTS來解決。
瀏覽器處理網域名稱的HTTP訪問時,若該網域名稱的HSTS沒有到期,則在瀏覽器內部做一次307重新導向到HTTPS,從而避免瀏覽器和伺服器之間301或302重新導向請求被攔截的風險。
HSTS回應標頭結構為:
Strict-Transport-Security:max-age=expireTime [;includeSubDomains] [;preload]
,參數說明如下表所示。
參數 | 說明 |
---|---|
max-age | HSTS Header的到期時間,單位為秒。 |
includeSubDomains | 選擇性參數。如果包含這個參數,說明該網域名稱及其所有子網域名稱均開啟HSTS。 |
preload | 選擇性參數。當您申請將網域名稱加入到瀏覽器內建列表時需要使用preload列表。 |
说明
- HSTS生效前,第一次需要將301或302重新導向到HTTPS。
- HSTS回應標頭在HTTPS訪問的響應中有效,在HTTP訪問的響應中無效。
- 僅對443連接埠有效,對其他連接埠無效。
- 僅對網域名稱有效,對IP無效。