由于谷歌已经公开声明搜索引擎对https网站更加友好,排名更优先,所以越来越多的网站用上了https。https的一大好处就是安全,但是目前https并不足够普遍,用户也是懒得在域名前输入https://这样的内容,所以就需要网站设置301进行跳转,但是很有可能网站在跳转前被劫持,引向错误的网站,所以就需要设置HTST,这样可以让用户在第一次访问网站之后保留信息,第二次访问直接浏览器就自动跳转到https网站,避免了被中间人劫持。
一、Nginx的配置
nginx比较简单,vim /etc/nginx/sites-available/example.conf
修改自己的配置文件,ssl下的server块中加入一行
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
保存退出,然后执行service nginx restart
重启Nginx即可。63072000意味着这个头信息保留一年,不过这一年中如果有任何一次访问都会重新变成了1年的保留时间。
二、Apache2的配置
apache2的配置和nginx也差不多,到/etc/apache2/sites-available/example.conf 中寻找自己的配置文件,也是添加一行:
Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains; preload"
保存退出即可,service apche2 restart重启apache;接着可以使用命令apache2 -t测试自己的配置是否生效。
如果出现了类似下列错误:
Invalid command ‘Header’, perhaps misspelled or defined by a module not included in the server configuration
不要慌张,是没有启用headers模块,执行下列命令后再测试一下,问题就能解决了。
a2enmod headers
三、测试设置是否成功
设置完成了,需要看看自己的设置是否成功,就可以用curl测试,注意这里的域名就需要加上https了。
curl -I https://yearliny.com -k
如果出来的结果中含有类似下列的字段,那么说明自己的设置成功了。
Strict-Transport-Security
发表回复