虚拟主机中Apache配置启用HSTS

现在给网站启用ssl的站长越来越多了,谷歌也逐步将http访问设置为不安全,不开ssl感觉会对用户造成一种假象,没有ssl就是不安全的网站。所以小站也在很久之前就部署了ssl证书。

问题过程

晚上网友“心有猛虎”说他网站怎么是T,我就用检测工具简单检测了一下,果然是最差的T等级,我想不应该啊,就刷新重新检测,果然恢复到A了,应该是检测工具没刷新问题。
虚拟主机中Apache配置启用HSTS

弄到这里我就看了一下我的网站,也是A,这时候我的处女座强迫症犯了,为什么不搞到A+呢?(A+需要配置HSTS)以前也搞过,不过那个时候用的是独立服务器,环境是Nginx配置几行代码就能实现,现在转到虚拟主机,还能不能配置,经过使用搜索工具,终于找到了虚拟主机配置。

解决方案

.htaccess中添加配置就可以实现。

1
2
RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L,E=HTTPS:1] Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains;
preload" env=HTTPS

核心代码是最后一句,前面的作用是需将将非https重定向到https。并使用HSTS标头将非www https重定向到www https。

所以我网站的.htaccess中添加最后一行代码Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload” env=HTTPS就实现了。再来检测一下。果然实现了A+.
虚拟主机中Apache配置启用HSTS

转自 青衫慧博客