五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

利用HSTS安全協(xié)議柔性解決全站HTTPS的兼容性問題

2018-03-02 23:54 作者:黑貓SAMA  | 我要投稿

前言:這篇文章還是轉(zhuǎn)載的,因為我自己的站點想啟用強制HTTPS,找了半天似乎最有效的是利用HSTS協(xié)議強制跳轉(zhuǎn),這篇文章講的是如何在主流服務(wù)器上配置HSTS協(xié)議,那就轉(zhuǎn)載一下備用吧……

——————————————————————————————

一、HSTS 協(xié)議

這里我們要借助一個新的安全協(xié)議:HSTS

HSTS(HTTP Strict Transport Security)國際互聯(lián)網(wǎng)工程組織 IETE 正在推行一種新的 Web 安全協(xié)議,作用是強制客戶端(如瀏覽器)使用 HTTPS 與服務(wù)器創(chuàng)建連接。

主要目的是為了解決 HTTPS 網(wǎng)站首次請求時使用的是未加密的 HTTP 協(xié)議,也就說用戶一般訪問我們的網(wǎng)站都是直接在瀏覽器輸入域名,比如 zhangge.net,然后我們的服務(wù)器檢測到是 HTTP 請求,就 301 跳轉(zhuǎn)到 HTTPS 頁面。那么前半程采用的就是未加密的 HTTP 請求,同樣存在被劫持的可能,那么 HTTPS 說好的安全性也就大打折扣了!

在我看來,HSTS 還有另外一層好處:增強網(wǎng)站的兼容性。

以往分享的全站 HTTPS 都是采用 301 強制性跳轉(zhuǎn),而且還會區(qū)分下低版本 IE、不支持 HTTPS 的搜索引擎來忽略 301 跳轉(zhuǎn),很明顯這樣做無法照顧到所有情況。那么如果是用 HSTS 呢?

采用 HSTS 后,支持這個協(xié)議的瀏覽器會自動跳轉(zhuǎn)到 HTTPS 頁面,返回碼為 307:


而不支持 HSTS 的瀏覽器訪問我們的網(wǎng)站,則不會產(chǎn)生跳轉(zhuǎn),從而提高了兼容性。這個機制對于不支持 HTTPS 的搜索引擎來說是非常友好的做法了!

二、開啟 HSTS

開啟 HSTS 很簡單,只要在我們網(wǎng)站的響應(yīng)頭里面新增 HSTS 即可,下面簡單說下

①、Nginx 服務(wù)器

只需要在站點 server 模塊內(nèi)插入如下配置并重啟:

Apache 如下配置并重啟:

③、LigHttpd

將下述配置增加到你的 Lighttpd 配置文件(一般是 /etc/lighttpd/lighttpd.conf)并重啟:

④、通用方法

如果你用的虛擬主機,或者不會折騰 WEB 軟件,那么可以采用更簡單的通用方法。原理很簡單,通過代碼來新增響應(yīng)頭即可,這里只分享一下 php 的做法,其他語言自行參考:

將如下代碼插入到網(wǎng)站根目錄的 index.php 即可:

三、相對鏈接

當然,為了兼容不支持 HTTPS 的客戶端,我們還需要將網(wǎng)站的所有超鏈接都改成相對模式:

比如,正常的頁面鏈接如下所示:

好處就是,不管是 HTTP 還是 HTTPS 請求,頁面中的地址都是和請求協(xié)議保持一致,避免出現(xiàn)頁面是 HTTP,而頁面中的鏈接卻是 HTTPS 的情況,那么前面的做法也就沒了意義。

如何修改為相對模式,估計有同學又玩不轉(zhuǎn)了。萬變不離其宗,和以前純代碼啟用七牛 CDN 一樣!

直接粗暴替換前臺輸出的代碼即可:

四、提交 HSTS

上文已介紹了 HSTS,主要是為了解決 HTTP 請求 301 跳轉(zhuǎn)到 HTTPS 這個過程被劫持問題,而實際上就算加上 HSTS 響應(yīng)頭,用戶請求的前半程依然是 HTTP,并沒有什么卵用。

提出這個協(xié)議的磚家們就想出了一個解決辦法:將支持 HSTS 的網(wǎng)站全部加入一個 Preload 的清單,支持 HSTS 協(xié)議的瀏覽器請求網(wǎng)站前會查詢當前網(wǎng)站是否在清單中,如果是那么直接轉(zhuǎn)換為 HTTPS 請求!從而解決前半程為 HTTP 的問題(不專業(yè),但說人話。。。)。

那么,如果我們的網(wǎng)站啟用了 HSTS,還得將網(wǎng)站提交到這個 Preload 清單才行了

提交地址:https://hstspreload.appspot.com/  (需要扶墻訪問)

提交直到批準,我們的網(wǎng)站必須強制 301 跳轉(zhuǎn)到 HTTPS,否則無法通過,完成審核后再取消 301 即可。

當然,提交后會顯示正在提交到 preload list,快的話兩三天,慢的話一兩個月都是有可能的:

——————————————————————————————

后記到此結(jié)束,如果想查看原文,我會在評論置頂原文鏈接。另外我個人的小站

https://www.mimikko.club

(雖然沒強制要求https,但還是希望都用https訪問吧)

利用HSTS安全協(xié)議柔性解決全站HTTPS的兼容性問題的評論 (共 條)

分享到微博請遵守國家法律
广丰县| 塔城市| 桃源县| 合阳县| 文昌市| 洞头县| 施秉县| 阿鲁科尔沁旗| 定远县| 华安县| 丹寨县| 湘阴县| 大余县| 旺苍县| 隆回县| 乌兰浩特市| 广东省| 环江| 二连浩特市| 漳浦县| 辽宁省| 太康县| 百色市| 湖北省| 茶陵县| 秭归县| 普安县| 内江市| 北海市| 仁布县| 嵩明县| 雅安市| 衡阳市| 寻乌县| 新龙县| 兰考县| 车致| 永仁县| 长沙市| 呼伦贝尔市| 友谊县|