教你如何用HSTS实现http跳转https?
发布日期:2018-09-30我们知道,现在大多少浏览器都要使用https加密,对于这种情况,很多站点都使用了http强制跳转https的方法,这种方法有效的解决了http网站在部署了SSL证书后,输入域名直接跳转到https的问题,但同样也有被域名劫持的风险,因为用户首次访问站点的时候其实也是用的是http请求,之后被重定向到了https,如何解决这个问题呢?这里我们要借助一个新的安全协议:HSTS,教你如何用HSTS实现http跳转https。
什么是HSTS
HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议,作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。
主要目的是为了解决HTTPS网站首次请求时使用的是未加密的HTTP协议,也就说用户一般访问我们的网站都是直接在浏览器输入域名,比如morong.me,然后我们的服务器检测到是HTTP请求,就301跳转到HTTPS页面。那么前半程采用的就是未加密的HTTP请求,同样存在被劫持的可能,那么HTTPS说好的安全性也就大打折扣了!
开启HSTS
开启HSTS很简单,只要在我们网站的响应头里面新增HSTS即可,下面简单说下
1、Nginx服务器
找到nginx.conf配置文件,在网站的server配置代码里面加入如下代码:
server {
listen xx.xx.xx.xx:443 ssl spdy;
server_name www.gworg.com;
add_header Strict-Transport-Security "max-age=31536000;includeSubdomains"#加入此行代码
…… }
2、Apache服务器
LoadModule headers_module modules/mod_headers.so
<VirtualHost 0.0.0.0:443>
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
</VirtualHost>
3、Lighttpd
server.modules += ( "mod_setenv" )
$HTTP["scheme"] == "https" { setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload") }
4、通用方法
如果你用的虚拟主机,或者不会折腾WEB软件,那么可以采用更简单的通用方法。原理很简单,通过代码来新增响应头即可,这里只分享一下php的做法,其他语言自行参考:
将如下代码插入到网站根目录的index.php即可:
header("Strict-Transport-Security: max-age=63072000; includeSubdomains; preload");
篇尾语:HSTS有利有弊,启用了的网站如果后期想http访问需要一段时间才可以恢复,另外目前不是所有的浏览器都支持HSTS,所以对于想使用这种方法强制跳转https的用户可以综合考虑下。
以上,是为大家分享的“教你如何用HSTS实现http跳转https”的全部内容,如果用户遇到的问题不能解决,可通过wosign官网客服寻求帮助,凡是选择wosign ssl证书的网站用户,wosign可提供免费一对一的ssl证书技术部署支持,免除后顾之忧。
相关资讯
HSTS全称是HTTP Strict Transport Security,已经被主流的浏览器广泛采用,支持HSTS的服务端可以强制访问它的浏览器使用HTTPS协议,这样就可以最大限度的减少HTTP协议的各种安全问题。
在网站全站HTTPS后,如果用户手动敲入网站的HTTP地址,或者从其它地方点击了网站的HTTP链接,通常依赖于服务端301/302跳转才能使用HTTPS服务。而第一次的HTTP请求就有可能被劫持,导致请求无法到达服务器,从而构成HTTPS降级劫持。这个问题目前可以通过HSTS(HTTP Strict Transport Security,RFC6797)来解决。
HSTS可以禁止浏览器使用无效证书(浏览器的默认策略是让用户决定是否放行,而用户往往因为不能区分无效是因为配置问题还是攻击而选择继续访问从而导致遭受网络攻击)
最新资讯
(Nginx,Apache,Tomcat,IIS)开启TLS1.2协议教程
标签推荐:ssl证书过期 | 阿里云ssl证书 | https证书申请| 数字签名技术| 火狐浏览器证书| ssl证书更新