虚拟主机中Apache配置启用HSTS

2020年2月22日00:20:41 14 176 907字阅读3分1秒

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

问题过程

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

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

解决方案

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

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+.

总结

折腾使人进步,折腾过程中需要善用搜索工具。

晚安。

参考文章

How to set HSTS header from .htaccess only on HTTPS

nginx、Apache、Lighttpd启用HSTS

证书检测工具

myssl

继续阅读
weinxin
微信公众号
博客微信公众号,欢迎关注。
avatar
  • 文本由 发表于 2020年2月22日00:20:41
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:14   其中:访客  7   博主  7
    • avatar Nick @回复 0

      还可以在 hstspreload.org 提交一下域名,加进浏览器的HSTS列表
      Most major browsers (Chrome, Firefox, Opera, Safari, IE 11 and Edge) also have HSTS preload lists based on the Chrome list.

        • avatar 萧瑟 博主 @回复

          @Nick 谢谢提醒,已提交。

        • avatar 叶先生博客 @回复 4

          原来你是处女座的啊 :mrgreen:

            • avatar 萧瑟 博主 @回复

              @叶先生博客 是啊,不过更多的是程序员的强迫症。

            • avatar 小王先森 @回复 6

              我可以直接拿来用,我的环境和你的一样

                • avatar 萧瑟 博主 @回复

                  @小王先森 好像不行,你用的是nginx,我的是Apache。

                • avatar 心有猛虎 @回复 1

                  那天晚上那个网友来啦,我也去设置一个看看

                    • avatar 萧瑟 博主 @回复

                      @心有猛虎 恩,你应该用的Nginx可参考本文下面的文档链接。

                    • avatar 张波博客 @回复 4

                      测这个T什么的用什么工具呀?

                      • avatar Mr.Chou @回复 2

                        嘿嘿,我申请的是免费SSL,没去测试过等级..

                          • avatar 萧瑟 博主 @回复

                            @Mr.Chou 我的也是免费ssl,这个等级跟证书毫无关系,主要是配置,达标后就能获得相应的等级。

                          • avatar 风也温柔 @回复 4

                            用腾讯云cdn就不能自定义TSL的版本了,可以达到A+但是会显示PCI DSS不合规,因为腾讯云cdn关不了TLS1.0,但是又拍云的CDN就可以

                              • avatar 萧瑟 博主 @回复

                                @风也温柔 分析的很到位,不过还是腾讯云的CDN快一些,比又拍节点多。