今天学习的内容是给自己的网站开启全站HTTPS。如果你是在我的博客阅读这篇文章的话,可能已经注意到,我的博客已经开启了全站HTTPS。虽然只是多少了一个S,但是传输过程区别很大。
为什么要切换到全站HTTPS?
因为HTTP是一种明文传输协议,非常容易被截获和修改,为了避免第三方对我们访问网站造成的影响,所以目前国际上都在推广HTTPS,可见HTTPS取代HTTP将是未来的大势所趋。所以我也不例外,加入了这个安全化的浪潮。有的人可能会觉得,不重要的网站不用开启HTTPS,但是无论网站重要与否,当用户访问的时候被恶意修改为钓鱼网站都是我们不想见到的。况且现在升级HTTPS成本很低了,有的机构SSL证书可以直接免费领取,所以升级HTTPS才是正解。
切换HTTPS的步骤
首先申请一个SSL证书,这里既可以选择收费的也可以选择免费的,我推荐使用Let’s encrypt的免费证书,这个证书可以到官网申请。
将这个SSL证书部署到你的服务器上,由于我用的是云空间,直接填写证书和私钥就可以了。
这时就可以通过https访问网站了,但是如果使用HTTP的话,还是能够进入网站,这时我们可以在服务器的Apache配置文件(.htaccess)下对HTTP访问设置301返回,就可以实现强制HTTPS,在文件后加入这几行:
RewriteBase /
RewriteCond %{HTTP:KERSSL} !on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
做完这些工作,一般来说已经完成了,但是由于现在用的都是各种建站系统,里面的主题插件什么的难免用到外链HTTP资源.所以我们还需要将这些资源文件移动到自己的主机上.
开启浏览器的安全例外,然后在开发者控制台里的"网络"一栏对HTTP请求进行分析(记得禁用缓存),将其中的HTTP外链资源移到本地,再在相应的文件里面修改资源获取地址.就可以真正做到全站HTTPS啦!