网站迁移HTTPS的一点经验

什么是HTTPS

定义

超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,也被称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。

以上解释来自维基百科,反正记着传输加密,非常安全就对了。

必要性

HTTPS为什么1994年就提出来了,但是直到最近几年才开始普及呢?按我的理解有下面几点

  1. 互联网流量暴增,人们对隐私的保护越来越在意。(当然在天朝还是路漫漫)
  2. 硬件能力的提升,服务器处理能力得到了极大的提升,对于https流量的加解密过程能在几毫秒内完成。(https拖慢网站访问速度的言论在前几年是非常普遍的)
  3. 国内外大厂均转身HTTPS,整个产业链越来越完善,比如服务器提供商、云存储、CDN厂商、都已经对HTTPS做了很好的支持。
  4. 国内的流量劫持太过普遍,疯狂插广告劫持统计代码等等。最出名的莫过于某度的统计代码劫持事件。
  5. HTTPS证书的价格降低甚至免费(以Let’s Encrypt为代表)

证书的选择

证书就三类,DV、OV、EV,普通网站使用DV证书就好了。而DV证书也有收费和免费之分,我是真没看出有啥特别的区别,也就是收费的证书有效期时间长点,免费的3个月到1年为周期。

说下我自己的选择:
服务器:使用Let’s Encrypt免费证书,支持多个子域名,续签或者增加子域名的时候的非常快速简单。
CDN:直接在厂商后台申请免费1年期的赛门铁克证书

这里需要说明的是国内的阿里云、腾讯云、七牛等等提供的免费证书都是赛门铁克的免费证书,都是一家公司的产品,所以随便在哪个平台申请就好了。

CDN厂商的选择

  • 网宿、蓝讯:大厂必备,反正斗图啦这样的小网站就不考虑了。
  • 阿里云:HTTPS配置很方便,但是价格贵的离谱,0.2元/万次请求
  • 腾讯云:不对HTTPS做额外的收费,价格与HTTP的一致。看着很美好,但是我用了一段时间发现用了HTTPS后流量消耗变大、每天的峰值带宽增加了。所以不管你是用流量结算还是用带宽峰值结算,成本都是增加的。这其中必然是有不可告人的猫腻,但是整体还是比阿里的便宜。

云存储厂商的选择

国内不用多说,目前就两家比较大的

  • 又拍云:0.05元/万次请求,流量价格为0.29元/G
  • 七牛:不收取请求费,流量价格为0.36元/G

小图片比较多的话适合七牛,不然又拍的请求费弄死你,请求数产生的费用比流量产生的费用还大。当然了又拍是没有计算PUT/DELETE费用的,而七牛是对这两种请求收费的,还挺贵所以怎么选择还是要大家亲自试试。怎么用两者产生最低的流量成本也是本学问。

服务器配置过程

可以参考这篇:How To Secure Nginx with Let’s Encrypt on CentOS 7,写的浅显易懂,非常值得推荐。

总结

HTTPS很美好,对用户好对站长也好。但是运营成本会有所提升,这个就看运营者自身的考虑了。