讓你的HTTPS更安全-讓你的HTTPS更安全開啟HSTS讓瀏覽器強制跳轉HTTPS訪問
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
現如今很多的站都開啟了https,這是標準化建站模式,在網站全站HTTPS后,如果用戶手動敲入網站的HTTP地址,或者從其它地方點擊了網站的HTTP鏈接,通常依賴于服務端301/302跳轉才能使用HTTPS服務。
而第一次的HTTP請求就有可能被劫持,導致請求無法到達服務器,從而構成HTTPS降級劫持。這個問題目前可以通過HSTS(HTTP Strict Transport Security,RFC6797)來解決。先說說說HSTS;
HSTS簡介
HSTS(HTTP Strict Transport Security)是國際互聯網工程組織IETF發布的一種互聯網安全策略機制。采用HSTS策略的網站將保證瀏覽器始終連接到該網站的HTTPS加密版本,不需要用戶手動在URL地址欄中輸入加密地址,以減少會話劫持風險。
hsts預加載列表,可以理解為:用戶在訪問網站時,會判斷你是http網站還是https網站。通過這個預加載列表,可以實現在用戶訪問之前就能知道是https。這里我用的apache,給出apache關于hsts配置內容如下:
開啟HSTS讓瀏覽器強制跳轉HTTPS訪問教程
部署的話,首先啟用HSTS的header模塊LoadModule?headers_module?/usr/lib/apache2/modules/mod_headers.so
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
上述代碼放于網站配置文件中,一般是httpd.conf文件等網站配置文件。寶塔界面,可以直接點擊網站,設置,切換到配置文件選項,添加內容即可。
PS:注意,是配置文件不是偽靜態文件,注意添加文件位置,再你網站目錄的下方一點;
HSTS響應頭格式
max-age,單位是秒,用來告訴瀏覽器在指定時間內,這個網站必須通過HTTPS協議來訪問。也就是對于這個網站的HTTP地址,瀏覽器需要先在本地替換為HTTPS之后再發送請求。
includeSubDomains,可選參數,如果指定這個參數,表明這個網站所有子域名也必須通過HTTPS協議來訪問。
preload,可選參數,一個瀏覽器內置的使用HTTPS的域名列表。
然后再到 https://hstspreload.org/ 網站,提交一下你的網站。之后,各大主流瀏覽器就會內置你的域名到他們的hsts列表中,直接內置到瀏覽器中。
PS:自己站帶www就提交帶WWW的,不帶的就提交不帶的,別搞亂了嘍;
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!