到底该不该用https,这个问题我纠结了很久,之前也写了篇《到底该不该上SSL网站?HTTPS站点有哪些优缺点?》,HTTPS有弊也有利,这几天还是鼓起勇气加上上了SSL。
本来打算购买一个500~1000块一年的SSL证书,但是国内外找了一圈,发现即使是收费的SSL也存在一些问题,后来发现很多人推荐Let's Encrypt这个免费的SSL证书,目前Z-blog官网也是使用这家的免费证书,经过2天的测试,这家的免费SSL证书确实非常不错!虽然证书有效期只有90天,但通过脚本可以实现自动续期,这也是Let's Encrypt推荐的方式。
Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。上了HTTPS后,本站网址在各大浏览器地址栏上就显示绿色了
Let's Encrypt已经得了 IdenTrust 的交叉签名,这意味着其证书现在已经可以被Mozilla、Google、Microsoft和Apple等主流的浏览器所信任,你只需要在Web 服务器证书链中配置交叉签名,浏览器客户端会自动处理好其它的一切,Let's Encrypt安装简单,未来大规模采用可能性非常大。
HTTPS看起来很美丽,但是存在很多的问题得解决:
1、访问速度
HTTPS会使网站访问速度变慢,这个问题也是我一直纠结上不上HTTPS的最大原因。为了用上HTTPS,我前两天给服务器做了升级,PHP版本也升级到了7.0.12,并且开启了opcache加速。Nginx升级到了1.10.0,Nginx1.9.5以上开始支持http2,所以我也用上了http2。http2需要浏览器配合,好在Chrome和Firefox浏览器都已经在2015年就支持了http2,http2给https加速不少。经过服务器硬件软件的升级,本站开启https后,访问速度仍然可以在1秒内快速打开,已经达到了我的要求。
2、代码兼容
要知道开启HTTPS后,网页里不能再调用http的资源了,包括js、iframe框架都不行,甚至调用远程的http图片地址也会导致浏览器的绿色标识消失。这个问题也导致我不能再使用51la统计代码了,现在已使用百度的统计代码。接下来是多说评论代码,多说虽然是支持https,但是多说用户登录后的头像地址却是http的,不同的登录用户支持https的情况也不一样,目前发现微博和QQ登录已经多说自己的用户头像是支持https,而其它的社交网站用户很多不支持https,这不能怪多说,毕竟他们也尽力了。最终我把多说的js下载到本地,修改了一番,目前是能正常显示https头像了。
3、浏览器兼容
很多的SSL证书对浏览器兼容不好,经过测试各大浏览器都很友好。目前WoSign的免费SSL证书已经被Apple不信任(WoSign也已经在2016年9月停止了免费证书服务),WoSign和StartSSL的一年之内签发的所有证书也会被Mozilla不信任。所以这2家的免费证书就不要考虑了。
总结:HTTPS是未来趋势,但就目前的情况并不适合每个网站,但最好要学会安装使用SSL证书,需要时可以快速用上!