目錄

Apache配置HSTS

越來越多的網站都已經開始或者實現了從HTTP到HTTPS的升級和跳轉,這是一個網站安全發展的趨勢,同時也因為市場上SSL免費證書的充足,也進一步加快了普通網站實現 HTTPS 協議,但隨之而來的安全性問題也出現了。

其中幾乎所有的站長會開啟強制 HTTPS 機制,也就是利用 301/302 對網站的 HTTP 請求全部跳轉到 HTTPS,從而實現全站的 HTTPS 協議訪問,但這顯然不妥。所以這裡就要分享一下這個解決方法,那就是藉助一個新的 WEB 安全協議:HSTS

這篇文章主要是說明如何在Apache配置HSTS,如果客戶主機使用的是集成式環境如:WAMP、PHPStudy、Lamp、Apache都可以參考本嚮導進行配置。

一、查詢配置文件

在開啟配置之前,需要找到Apahce 的主配置文件httpd.conf。

二、開啟mod_headers.so

  1. 請使用notpad++編輯器(不要使用Windows記事本)打開查找到httpd.conf 配置文件。
  2. 在編輯器內按下查詢快捷鍵Control+F喚出內容查找器,輸入 mod_headers.so 並點擊查找。
  3. 去除下面這行之前的#號,並保存配置文件。
				
					LoadModule headers_module modules/ mod_mod_headers.so
				
			

三、查詢已經開啟SSL的站點配置文件

  1. 在客戶機上查詢站點配置文件,站點配置文件通常位於httpd.conf、vhost-ssl.conf、vhost.conf或者自定義的配置文件內。
  2. 為了方便理解,這裡我們假設找到的SSL站點配置文件為mydomain-ssl.conf

四、開啟站點HSTS

插入HSTS代碼

				
					Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
				
			

編輯配置mydomain-ssl.conf內容如下:

				
					DocumentRoot "\www\mydomain
ServerName mydomain.com:443 
ServerAlias www.mydomain.com 
ErrorLog "logs/error_log" 
TransferLog "logs/access_log" 
SSLEngine on 
SSLCertificateFile "/conf/ssl/mydomain.pem" 
SSLCertificateKeyFile "/conf/ssl/mydomain.key" 
SSLCertificateChainFile "/conf/ssl/ca-chain.pem" 
Header always set Strict-Transport-Security "max-age=63072000; 
includeSubdomains; preload"


				
			

保存您正在編輯的配置文件。

這裡需要注意的是配置完HSTS命令後,務必修改其它文件。

五、重啟和測試

重新啟動您的Apache,清除瀏覽器緩存,訪問2次查看效果。

您也可以通過chrome瀏覽器的開發者選項→網絡項查看服務器返回的頭信息,來判斷是否已經開啟HSTS

根據您對HSTS的配置,所查看到的Strict-Transport-Security 配置值可能不一樣。

恭喜您!您的網站已經開啟HSTS安全策略。
如遇其它問題歡迎反饋。

DV SSL
全台最便宜的 DV SSL NTD:700元起
EV SSL
高度安全的 EV SSL NTD:8,000元起
Wildcard SSL
全台最便宜的 Wildcard SSL SSL NTD:5,300元起

By taki

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *