隨記(四):簡述HSTS協議
HSTS協議概要
HSTS意為嚴格傳輸安全協議(英語:HTTP Strict Transport Security),其最為核心的是一個HTTP響應頭(HTTP Response Header),正如圖所示:
HSTS Header的語法如下:
Strict-Transport-Security: max-age=XXX; includeSubDomains; preload
- max-age是必填引數,是一個以秒為單位的數值,它代表著HSTS響應頭的過期時間,通常設定為一年,即31536000秒。
- includeSubDomains是可選引數,如果包含它,則意味著當前域名及其子域名均開啟HSTS保護。
- preload是可選引數,只有當你申請將自己的域名加入到瀏覽器內建列表時,才需要使用到它。
(Tips:在生產環境下使用HSTS機制時,建議先將max-age引數的值設定小一些(如:若干分鐘),檢查HSTS是否能正常工作,網站能否正常訪問,然後再逐步將時間延長(如:一週/一個月),並在這個時間範圍內繼續檢查HSTS是否正常工作,最後才改到一年。這是因為當網站證書有問題時,一旦瀏覽器接收到HSTS Header ,那麼使用者將在有HSTS效期間內,直到證書錯誤被修復,或者使用者主動清除瀏覽器快取為止,都無法訪問到你的網站。)
HSTS作用
HSTS的作用是強制客戶端(如:瀏覽器)使用HTTPS與伺服器建立連線,使用者無需手動在URL位址列中輸入HTTPS,瀏覽器始終保持HTTPS連結訪問網頁。
使用HSTS可以做到讓瀏覽器強制拒絕不安全的連結,不給使用者選擇的機會。
在沒有HSTS保護的情況下,當瀏覽器發現當前網站的證書出現錯誤,或者瀏覽器和伺服器之間的通訊不安全,無法建立HTTPS連線的時候,瀏覽器通常會警告使用者,但是卻又允許使用者繼續不安全的訪問。而有了HSTS後,瀏覽器將會徹底阻止使用者繼續訪問。
HSTS配置方法
- Nginx伺服器 - 配置
## 在config.conf配置檔案中新增以下指令
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
- Apache伺服器 - 配置
- 在httpd.conf檔案中載入headers模組:
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
- 在VirtualHost 0.0.0.0:443中新增下面程式碼行:
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
- 重啟Apache伺服器。
- IIS伺服器 - 配置
在web.config檔案中新增下列命令列進行配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
<outboundRules>
<rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
<match serverVariable="RESPONSE_Strict_Transport_Security"
pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" ignoreCase="true" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
相關文章
- HTTP協議簡述HTTP協議
- 簡述HTTP協議HTTP協議
- HTTP HSTS協議和 nginxHTTP協議Nginx
- MODBUS協議整理——功能碼簡述協議
- 簡述HTTP和HTTPS協議的不同之處HTTP協議
- HTTP協議圖文簡述--HTTP/HTTPS/HTTP2HTTP協議
- 電腦間資料通訊——OSI協議簡述版協議
- 簡述 zookeeper 基於 Zab 協議實現選主及事務提交協議
- HTTP 協議簡介HTTP協議
- cdp協議簡介協議
- Http協議簡介HTTP協議
- 實用TCP協議(1):TCP 協議簡介TCP協議
- 隱私集合求交(PSI)協議研究綜述協議
- Web 動效四大才子簡述Web
- Asyncdb(四):MySQL網路協議分析MySql協議
- 實驗四————RIP協議的配置協議
- 簡單談談DNS協議DNS協議
- MM2協議簡介協議
- TCP 和 UDP 協議簡介TCPUDP協議
- 一、USB PD協議簡介協議
- 02 前端HTTP協議(圖解HTTP) 之 簡單的HTTP協議前端HTTP協議圖解
- 【安全科普】AD域安全協議(四)RPC協議RPC
- tcp/ip協議(1)三握四揮TCP協議
- 網際網路協議簡介協議
- TCP對應的協議和UDP對應的協議(簡單概述)TCP協議UDP
- Raft協議學習筆記Raft協議筆記
- Raft 協議學習筆記Raft協議筆記
- SPI通訊協議筆記協議筆記
- IIC通訊協議筆記協議筆記
- 學習筆記 - DNS協議筆記DNS協議
- IP協議學習筆記協議筆記
- 計算機網路之四:ICMP協議計算機網路協議
- 分散式理論(四) - 3PC協議分散式協議
- FireFox 取消HSTSFirefox
- 《圖解HTTP》——簡單的HTTP協議圖解HTTP協議
- UDP 和 TCP 兩種協議簡介UDPTCP協議
- 滄小海基於xilinx srio核的學習筆記之第五章 Rapidio協議詳述筆記API協議
- 網路協議課堂筆記協議筆記