這近資安要求有https的服務來取代http,雖然我覺得大部分的網站都沒必要弄https,但是網路是由錢來推動的,安全只是一個愰子。
一般有https的網站,都還是會提供http的服務,再藉由轉址或是重寫的方法轉成https。
如果希望一開始就嘗試建立 https 連線,那麼就讓你的apache一開始就送一個httpd 的header 告訴瀏覽器說請他用https來連。
這就是 HSTS ( HTTP Strict Transport Security )。
查看支援模組
headers_module (shared) <== 預設有安裝
如果沒有出現 headers_module 的話,請設定[2]:/etc/httpd/conf.modules.d/00-base.conf 加入這一行:
重啟 apache
寫入header
全域
# vi /etc/httpd/conf/httpd.conf
在尾端加入,31536000那串數字是一年
Header always set Strict-Transport-Security "max-age=31536000;includeSubdomains; preload"
重啟apache
單網站
加在你的virtual host設定中,例如
<VirtualHost *:80>
DocumentRoot /path/to
ServerName example.com
Header always set Strict-Transport-Security "max-age=3153600;includeSubdomains; preload"
...
</VirtualHost>
同時 443埠的服務也要設定,你的 ssl.conf
Header always set Strict-Transport-Security "max-age=3153600;includeSubdomains; preload"
...
</VirtualHost>
理論上 80埠有設就可以,但這樣的話檢測不過,因此 443埠的部分也記得要設定
重啟apache
測試
使用CURL
# curl -s -D- https://example.com/ | grep -i Strict
Strict-Transport-Security: max-age=3153600;includeSubdomains; preload
# curl -s -D- http://example.com/ | grep -i Strict
Strict-Transport-Security: max-age=3153600;includeSubdomains; preload
以上有顯示代表成功
使用網站
1. https://www.ssllabs.com/ssltest/
twnic的比較兩光,不過速度比較快。