前言
我的HTTPS学习之旅
2012年,我第一次接触HTTPS,那时候HTTPS网站还没有大规模部署,我想给自己的博客部署一张HTTPS证书,由于免费证书很少,最后花了近一个月时间才搞定,喜悦之情可想而知。
完成HTTPS网站部署后,我特别想了解HTTPS背后的原理,就在网络上寻找相关的资料,让人沮丧的是,国内的HTTPS资料非常少,大部分都是一些零星的知识,没有系统性的介绍,而且很多信息非常不严谨,不同人对于同一个知识点的描述也存在差异,由于自己没有十足的学习动力,HTTPS的初次学习之旅就结束了。
2016年,HTTPS又一次进入我的视野,主要有两点原因。第一是当时我所在公司的产品经常遇到页面篡改攻击,通过部署HTTPS网站解决了该问题,完成工作后,我想进一步掌握HTTPS原理。第二是我使用Shadowsocks协议搭建了一个代理服务,很好奇Shadowsocks协议的加密原理,当时隐隐约约觉得HTTPS和Shadowsocks协议背后的原理应该是相通的。
为了系统学习HTTPS,我再一次搜索相关的中文资料,情况和2012年差不多,中文资料还是非常少,质量也参差不齐,比较好的资料来源于imququ.com,虽然imququ.com>中HTTPS相关文章并不是特别多,但描述得非常好,而且具有实践性。
国内很多介绍HTTPS的资料来自各大CDN公司,因为未来HTTPS网站部署和优化是非常重要的一个研究方向,CDN公司为了减少成本和提升性能,必然会进一步研究HTTPS。但必须指出,他们的文章更多是宣传介绍自己的产品的,很少有诚意十足的分享。
第二个学习方式就是寻找专业的HTTPS书籍,正好《HTTPS权威指南》出版了,这本书应该算国内第一本介绍HTTPS的书籍,所以我第一时间就购买了,这本书翻译自Bulletproof SSL and TLS: Understanding and Deploying SSL/TLS and PKI to Secure Servers and Web Applications,目前看来这本书并不适合初学者,原因在于它主要讲解HTTPS漏洞,介绍协议原理、网站部署等内容的篇幅非常少,确切地说,它更适合了解HTTPS原理的读者,但不可否认这是一本好书。
经过一段时间的摸索,我意识到学习HTTPS必须参考更多的英文资料,向读者推荐两本书,分别是Implementing SSL/TLS Using Cryptography and PKI和Network Security with OpenSSL: Cryptography for Secure Communications,这两本书虽然出版时间比较早,很多知识点比较陈旧,但即使现在看来,仍然是非常权威和专业的HTTPS书籍。
很多读者可能已经发现,这两本书的书名中并没有“HTTPS”字样,关键词是“SSL/TLS”和“OpenSSL”,此处重点解释HTTPS和TLS/SSL之间的关系。对于读者来说,重要的是掌握TLS/SSL原理,HTTPS其实是TLS/SSL的一个最重要的子应用,任何讲解HTTPS的书籍和资料,其实都是在讲解TLS/SSL,希望读者明白两者之间的关系,这对于学习至关重要。
我也非常困惑为什么专业的HTTPS书籍如此之少。为了进一步学习,我使用Google搜索、Wikipedia、Stack Overflow进行了大量的学习,找到了很多非常不错的资料和网站(比如blog.cloudflare.com、Qualys SSL Labs),逐渐形成了自己的知识体系。我认识到学习HTTPS有四个关键步骤,分别是学习密码学、OpenSSL、TLS/SSL和HTTPS,可见整个知识体系还是非常庞大的。
在学习之余,我也非常重视实践和总结,在博客上写了一些关于HTTPS的文章,没想到访问量还是非常不错的,可见很多人也非常关心HTTPS网站的部署,这进一步增加了我的学习动力。