HSTS介绍
这里引用一下百度的资料吧:
国际互联网工程组织IETF正在推行一种新的Web安全协议HTTP Strict Transport Security(HSTS)该协议将帮助网站采用全局加密,用户看到的就是该网站的安全版本。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]