HSTS介绍

这里引用一下百度的资料吧:

国际互联网工程组织IETF正在推行一种新的Web安全协议HTTP Strict Transport Security(HSTS)
采用HSTS协议的网站将保证浏览器始终连接到该网站的HTTPS加密版本,不需要用户手动在URL地址栏中输入加密地址。
该协议将帮助网站采用全局加密,用户看到的就是该网站的安全版本。
HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。
比如,https://xxx 的响应头含有Strict-Transport-Security: max-age=31536000; includeSubDomains。这意味着两点:
在接下来的一年(即31536000秒)中,浏览器只要向xxx或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://xxx/ ,浏览器应当自动将 http 转写成 https,然后直接向 https://xxx/ 发送请求。
在接下来的一年中,如果 xxx 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站

开启HSTS

接下来说说,amh面板如何开启HSTS,其实面板软件“amssl”里就可以强制开启https访问(即HSTS),但是这时测试网页状态码为302。

关闭“amssl”的强制开启https访问,其他不动。打开当前网站的配置文件/home/wwwroot/你设置的主机名/vhost/你设置的主机名-https.conf

</VirtualHost>前添加下面代码:

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

上传覆盖,重载apache即可。此时在检测网页状态码就变成了301,需要的朋友赶紧试试吧。

顺便说下amh面板,http跳转到https,apcache规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^你的域名$ [NC]
RewriteRule ^(.*)$ https://你的域名/$1 [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://你的域名/$1 [L,R=301]