nginx、Apache、Lighttpd啓用HSTS

302跳轉

一般狀況下,咱們將用戶的 HTTP 請求 302 跳轉到 HTTPS,這會存在兩個問題:nginx

  1. 不夠安全,302 跳轉會暴露用戶訪問站點,也容易被劫持
  2. 拖慢訪問速度,302 跳轉須要一個 RTT(The role of packet loss and round-trip time),瀏覽器執行跳轉也須要時間

HSTS

302 跳轉是由瀏覽器觸發的,服務器沒法徹底控制,這個需求致使了 HSTS(HTTP Strict Transport Security)的誕生。HTSP 就是添加 header 頭(add_header Strict-Transport-Security max-age=15768000;includeSubDomains),告訴瀏覽器網站使用 HTTPS 訪問,支持HSTS的瀏覽器(Chrome, firefox, ie 都支持了 HSTS(http://caniuse.com/#feat=stricttransportsecurity))就會在後面的請求中直接切換到 HTTPS。在 Chrome 中會看到瀏覽器本身會有個 307 Internal Redirect 的內部重定向。在一段時間內也就是max-age定義的時間,無論用戶輸入www.ttlsa.com仍是http://www.ttlsa.com,都會默認將請求內部跳轉到https://www.ttlsa.com。瀏覽器

服務器端配置HSTS,減小302跳轉,其實HSTS的最大做用是防止302 HTTP劫持。HSTS的缺點是瀏覽器支持率不高,另外配置HSTS後HTTPS很難實時降級成HTTP。安全

同時,也建議啓用SPDY來提升性能。有關SPDY內容參見前面文章,不在此外累述了。服務器

下面來講說如何在Apache2, NGINX , Lighttpd啓用HSTS。dom

Apache2

 

而後,重啓Apache服務。ide

nginx

 

在server端添加該頭部,並重啓服務。性能

Lighttpd

 

 

X-Frame-Options 頭部

X-Frame-Options 頭部添加到HTTPS站點,確保不會嵌入到frame 或 iframe,避免點擊劫持,以確保網站的內容不會嵌入到其餘網站。網站

Apache

 

 

nginx

 

 

Lighttpd

 

相關文章
相關標籤/搜索