为了方便国内的 Emacs 党交流,前段时间跟社区里面几个小伙伴一起弄了一个discourse论坛,也就是现在的emacs-china.org 。当时有位 xuchunyang 同学建议论坛应该要支持 HTTPS,其实之前我使用 Spacemacs 的时候,就有人在 Reddit 里面建议从 Melpa 安装 Package 的时候应该要用 HTTPS,否则你的 Emacs 可能被人“下毒”。但是由于国内墙的原因,我当时把 HTTPS 禁用了。
现在,xuchunyang 同学搭建了一个国内的 ELPA 镜像,我也在上周末抽空让它支持了 HTTPS,欢迎 Emacser 试用。
因为 HTTP 请求是没有加密的,而我在上网的过程中,我的隐私可能会被窃取。另外,我访问的网站没有完整性验证,我可能会访问一些钓鱼网站,或者我访问的网站会被劫持,然后给我推送一些广告,一般运营商和 XX 智能路由器特别喜欢干这种事情。。。
HTTPS 是互联网下一个阶段的重要进化,所有的网站都应该上 HTTPS
关于为什么要使用 HTTPS 的更多理由,推荐阅读:https://https.cio.gov/everything/
我总结了一下,可能有以下 3 个原因:
其实这种观点是错误的,因为现在采用开源技术让你的网站支持 HTTPS 是很简单的,而且完全免费,维护成本也非常之低。
另外,开启 HTTPS 后,就可以进一步开启 HTTP/2 的支持了,虽然 HTTPS 会比 HTPP/1.1 多一次验证的过程,但是 HTTP/2 可以弥补这些损耗,让你的网站访问速度更快。另外,谷歌和火狐浏览器都声称只采用 TLS 的方式支持 HTTP/2。
关于 HTTP/2的更多信息,推荐阅读:https://http2.github.io/faq/
由于我的个人博客是静态网站,Web 服务器使用的是 nginx,所以我这里提供的方法对于nginx 的用户可能比较适用。但是,我相信其它 web 服务器应该是也很容易配置的。
首先,为了支持 HTTP/2,你的 nginx 的版本需要升级到 1.9.5+ 版本,我默认升级到了最新版。
其次,你需要有一个 HTTPS 的证书,我这里使用的是开源免费的 letencrypt,关于 ubuntu 怎么配置使用 letencrypt,可以参考本文Reference列举的文章,这里就不细讲了。
最后,你需要配置你的 nginx,注意把 HTTP 的请求都通过 301 重定向给 HTTPS
网站添加 HTTPS 以后,可以用专业的网站安全性评测工具评测一下,就像刚安装完系统要给系统打分一下。
打分网站: https://www.ssllabs.com/ssltest/index.html
让我们一起拥抱 HTTPS 和 HTTP/2吧!