昨天偶然间,发现了很多博客主在网站底部都挂上了MySSL安全认证的标志,为此小编也是为自己的网站检测了一下,发现评级一直卡在A(如下图所示),最高等级为A+。

Apache服务器配置HSTS教程 第1张

于是也是按照了MySSL的官方文档查阅了一下,发现是基于Nginx服务器做的说明,使用Nginx的可以参考下:https://blog.myssl.com/https-security-compatibility-best-practices/,小编使用的Apache,所以今天小编主要给大家记录一下Apache如何配置HSTS安全策略。

WAMP、PHPStudy、Lamp、Apache等都可以参考本向导进行配置。

查找配置文件

在开启配置之前,需要找到 Apahce 的主配置文件 httpd.conf

开启 mod_headers.so 模块

请使用 Notpad++ 编辑器(不要使用 Windows 记事本)打开查找到 httpd.conf 配置文件。

在编辑器内按下查找快捷键 Ctrl+F 唤出内容查找器,输入 mod_headers.so 并点击查找。

去除下面这行之前的#号,并保存配置文件

LoadModule headers_module modules/mod_mod_headers.so

查找已经开启 SSL 的站点配置文件

在客户机上查找站点配置文件,站点配置文件通常位于 httpd.confvhost-ssl.confvhost.conf 或者自定义的配置文件内。

为了方便理解,这里我们假设找到的 SSL 站点配置文件为 52lc-ssl.conf

开启站点 HSTS

插入 HSTS 代码

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

编辑配置 52lc-ssl.conf 内容如下

<VirtualHost *:443>
DocumentRoot "www/52lc.top"
ServerName 52lc.top:443
ServerAlias 52lc.top
ErrorLog "logs/error_log"
TransferLog "logs/access_log"

SSLEngine on
SSLCertificateFile "/conf/ssl/52lc.pem"
SSLCertificateKeyFile "/conf/ssl/52lc.key"
SSLCertificateChainFile "/conf/ssl/ca-chain.pem"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>

保存您正在编辑的配置文件

这里需要注意的是配置完 HSTS 命令后,务必修改其它文件

重启和测试

重新启动您的 Apache清除浏览器缓存,访问第2次查看效果。

您也可以通过chrome浏览器或Firefox等浏览器开发者选项→网络项来查看服务器返回的头信息,来判断是否已经开启HSTS

Apache服务器配置HSTS教程 第2张

可以看到,也是成功的已经开启了HSTS安全策略,并且在MySSL中已经达到了最高评级A+(如下图所示)。

Apache服务器配置HSTS教程 第3张

根据你们对HSTS的配置,所查看到的 Strict-Transport-Security 配置值可能不一样。

本站MySSL效果:https://myssl.com/52lc.top?from=mysslid