最近一年很多网站都将自己从HTTP升级到了HTTPS,如果你还以普通的HTTP方式访问,它们都会自动跳转HTTPS的页面,如百度、豆瓣、知乎等,你在访问它们的时候可以留意一下浏览器地址栏里的URL。
现在HTTPS不再是为了增强安全性,锦上添花的一项配置,它已经快成为一个网站的标准配置了,因为越来越多的新技术如HTTP2、Service Worker,都建立在HTTPS之上。而且,一些涉及到浏览器用户隐私的接口,如获取地理位置信息、获取设备传感器数据的接口,也都必须通过HTTPS传输。如果你想使用这些新技术,那么你就必须得切换到HTTPS。
那么切换到HTTPS会有多大的成本呢?
首先,你得采购一套HTTPS的证书,对于个人网站和小公司来说,可以使用一些免费的证书方案,如Lets Encrypt、StartSSL等,只是要定期更新证书,而大公司可以直接花钱搞定,买一些长期有效的证书。
其次就是对系统的复杂性的影响,在迁移过程中,开发和运维需要做证书配置、资源梳理等工作,但是一旦迁移完成,就无须再做过多处理,因为接入层搞定HTTPS后,业务层不需要做其他更改,以普通HTTP方式处理即可。
然后就是考虑HTTPS对性能的影响,对比HTTP多了一次加密解密的过程,因此对性能有了更大的挑战。不过随着技术的发展,现在服务器、用户的浏览器、SSL加密库的性能已经有很大的提升了,经过良好的优化后,HTTPS带来的性能损耗在一个可以接受的范围。
需要所有资源都接入HTTPS吗?也许你只考虑在用户登录界面,涉及到帐号密码等敏感信息的地方才接入HTTPS。但是在其它普通页面虽然没有敏感信息,也面临被劫持篡改页面的风险,JS资源也面临被劫持攻击的风险,这个问题果果在JS DDOS攻击的原理与防御也说过。同时普通页面如果想使用HTTP2等新技术带来的优势,也是需要接入HTTPS的,所以果果强烈推荐将所有页面和资源都接入HTTPS。