字體:  

讓nginx配置使用 HSTS 安全傳輸 - HTTP Strict Transport Security

chrome 發表於: 2017-6-20 16:36 來源: ADJ網路控股集團


HTTPS(SSL和TLS)確保用戶和網站通訊過程中安全,使攻擊者難於攔截、修改和假冒。當用戶手動輸入域名或http://鏈接,該網站的第一個請求是未加密的,使用普通的http。最安全的網站立即發送回一個重定向使用戶引向到https連接,然而,中間人攻擊者可能會攻擊攔截初始的http請求,從而控制用戶後續的回話。

自然而然HSTS應運而生為了解決這一潛在的安全問題。即時用戶輸入域名或http連接,瀏覽器將嚴格的升級到https連接。

(1)nginx配置HSTS

在nginx配置文件上設置HSTS Header:

QUOTE:


add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload” always;

always 參數確保所有的響應設置該頭部,包括內部產生的錯誤響應。 nginx版本早於1.7.5不支持該always參數和內部產生的錯誤響應不設置該頭部信息。

加了上面這段後,重啟nginx 就可以了.

SSH系統如何檢測:

QUOTE:


# curl -s -D- https://www.sample.com/ | grep -i Strict
strict-transport-security: max-age=31536000; includeSubDomains

如果出現strict-transport-security 等訊息就代表成功了,沒成功的話都沒字眼出現.

(2)將域名加入 HSTS Preload List

有一種狀況,就是當他第一次訪問的時候就可能有問題了,由於是http 協議進行的數據傳輸,因此這裡就可能被別人進行網域挾持了,他就可以改掉你的HSTS 規則,然後給你直接挾持到他們指定的網站上去,那麼用戶可能就無法正常訪問到我的網站了。

於是乎,HSTS Preload List 似乎就是一種機制來解決這個問題

HSTS Preload List 是一個站點的列表,他將會被通過硬編碼寫入Chrome 瀏覽器中,列表中的站點將會默認使用HTTPS 進行訪問,此外,Firefox 、Safari 、IE 11 和Edge 也同樣一份HSTS站點列表,其中包括了Chrome 的列表

很簡單,我們需要打開這個頁面,HSTS Preload Submission
https://hstspreload.org

照著它的指示加入列表,這樣一來要被挾持也就不太可能了~
逢甲住宿推薦逢甲住宿台中旅店逢甲日租台中住宿台中逢甲民宿台中民宿台中一中住宿台中便宜住宿台中青年旅館