當前位置:
首頁 > 最新 > 深入剖解HSTS,啟動HTTPS的強制機制

深入剖解HSTS,啟動HTTPS的強制機制

關於HSTS的定義

HSTS全稱是HTTP Strict Transport Security,中文名HTTP嚴格傳輸安全,誕生於2012年,至今已有五年歷史。它是一種Web安全策略機制(web security policy mechanism),IETF標準軌道協議,其功能是強制客戶端(如瀏覽器)使用HTTPS與伺服器創建連接。

作用

強制瀏覽器直接發起HTTPS請求,拒絕不安全的鏈接

抵禦SSL剝離攻擊,防止中間人攻擊。

HSTS工作原理:

HSTS的核心點是HTTP響應頭(HTTP Response Header),是由安全的HTTPS站點發出。

HSTS Header的樣式:

Strict-Transport-Security: [; includeSubDomains][; preload]

其中:

includeSubDomains,可選參數,意味著當前域名及其子域名均開啟HSTS保護。

Preload,可選參數,預載入到瀏覽器緩存。

完整的HSTS流程圖

瀏覽器阻止用戶繼續訪問不安全的站點

因此,站長們必須要確保站點必須使用安全有效的SSL證書,並正確部署。如果當瀏覽器接收到HSTS Header(假如有效期是1年),一旦網站的證書出現錯誤,用戶無法選擇忽略,用戶將在接下來的1年時間內都無法訪問您的網站,直到證書錯誤被修復,或者用戶主動清除瀏覽器緩存。

HSTS Preloading List

HSTS必須要在瀏覽器訪問過的網站一次以後才會生效,如果希望提前生效,需要申請 HSTS Preloading List(HSTS預載入列表)。

如果站長要想把自己的域名加進這個列表,首先需要滿足以下條件:

擁有一個有效合法的SSL 證書;

在同一台主機上提供重定向響應,以及接收重定向的HTTPS請求;

確保所有子域名均啟用 HTTPS;

在根域名的HTTP響應頭中,加入HSTS Header,並滿足下列條件:

必須包含includeSubDomains參數

必須指定preload參數

滿足條件後,在HSTS Preload List的官網上(https://hstspreload.org)提交申請。

檢查域名是否加入到Preload List

從提交申請到完成審核,成功加入到內置列表,時間為幾天到幾周不等,要視具體情況而定。可通過官網https://hstspreload.org或在Chrome地址欄里輸入chrome://net-internals/#hsts查詢狀態。

支持HSTS瀏覽器

目前HSTS Preloading List由 Google Chrome 維護,HSTS Preloading List使用覆蓋Chrome、Firefox、Safari、IE 和 Microsoft Edge 等主流瀏覽器。

Google Chrome 4及以上版本

Firefox 4及以上版本

Opera 12及以上版本

Safari從OS X Mavericks起

Internet Explorer 11及以上版本

GIF/6K

如何開HSTS

啟動HSTS並不難,只需要在伺服器配置文件上設置HSTS Header,就可以成功開啟HSTS機制。下面介紹不同伺服器設置HSTS Header。

、Nginx伺服器

只需要在站點server模塊內插入如下配置並重啟:

server {

listen 443 ssl http2;

server_name zhangge.net;

# 直接在server插入測試居然不生效,最後發現要在location ~ *php 內插入:

location ~ [^/].php(/|$) {

# 以下略…

、Apache伺服器

Apache如下配置並重啟:

# 先在Apache載入mod_header庫,一般位於httpd.conf文件,自行搜索mod_headers並取消注釋

LoadModule headers_module modules/mod_headers.so

#然後在站點VirtualHost裡面插入HSTS響應頭信息,比如:

、LigHttpd

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

server.modules += ( 「mod_setenv」 )

$HTTP[「scheme」] == 「https」 {

}

、通用方法

如果用的虛擬主機,或者不會折騰WEB軟體,那麼可以採用更簡單的通用方法。通過代碼來新增響應頭即可,這裡只分享一下php的做法,其他語言自行參考:

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

無論是HTTPS協議還是HSTS機制,首要的大前提必須擁有一個有效合法的SSL證書。CA機構是全球頒發SSL證書的唯一合法機構,因此獲取SSL證書的正確渠道是合法的CA機構申請獲取。數安時代(GDCA)是已通過國際WEBTRUST認證,具備國際化的電子認證服務能力的國內CA機構之一,旗下的SSL證書包括信鑒易 TrustAUTH、GlobalSign、Symantec、GeoTrust SSL證書等多個國際品牌,證書數量達數十種,站長們可根據自身的需求向數安時代GDCA機構申最佳的SSL證書,或向其公司的專業人員資訊,選取合適的SSL證書。數安時代(GDCA)的專業團隊將會為您提供最佳的HTTPS解決方案。

文章轉載:https://www.trustauth.cn/news/security-news/22639.html

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數安時代GDCA 的精彩文章:

SQL注入攻擊與防禦
Nginx 反向代理伺服器的工作原理
簡述Mariadb 設置root密碼以及修改root密碼的方法
哈希值的定義與應用
詳解MySQL中的字元串拼接函數

TAG:數安時代GDCA |