隨記(四):簡述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協議
- 電腦間資料通訊——OSI協議簡述版協議
- HTTP協議圖文簡述--HTTP/HTTPS/HTTP2HTTP協議
- 【網路協議】TCP協議簡介協議TCP
- 簡述 zookeeper 基於 Zab 協議實現選主及事務提交協議
- [面試∙網路] TCP/IP(四):TCP 與 UDP 協議簡介面試TCPUDP協議
- 《圖解TCP/IP》讀書筆記四:IP協議圖解TCP筆記協議
- cdp協議簡介協議
- HTTP 協議簡介HTTP協議
- Http協議簡介HTTP協議
- TCP 協議簡介TCP協議
- 實用TCP協議(1):TCP 協議簡介TCP協議
- tcp /ip 協議簡介TCP協議
- Asyncdb(四):MySQL網路協議分析MySql協議
- 實驗四————RIP協議的配置協議
- 第四章 SIP協議協議
- Web 動效四大才子簡述Web
- 隱私集合求交(PSI)協議研究綜述協議
- MM2協議簡介協議
- TCP 和 UDP 協議簡介TCPUDP協議
- 簡單談談DNS協議DNS協議
- 中國移動CMPP協議、聯通SGIP協議、電信SMGP協議簡訊閘道器協議
- 02 前端HTTP協議(圖解HTTP) 之 簡單的HTTP協議前端HTTP協議圖解
- tcp/ip協議(1)三握四揮TCP協議
- 《圖解HTTP》讀書筆記二:簡單的 HTTP 協議圖解HTTP筆記協議
- 《圖解HTTP》學習筆記(二):簡單的HTTP協議圖解HTTP筆記協議
- TCP對應的協議和UDP對應的協議(簡單概述)TCP協議UDP
- 網際網路協議簡介協議
- http 協議集合,超級簡單HTTP協議
- 簡單而重要的協議:ICMP協議
- 【網路協議】IP協議、ARP協議、RARP協議協議
- Raft協議學習筆記Raft協議筆記
- Raft 協議學習筆記Raft協議筆記
- TCP-IP協議筆記TCP協議筆記