HTTPS安全连接的实现

什么是HTTPS

HTTPS又称超文本传输安全协议,维基百科是这样科普的:

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

历史上,HTTPS连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输。在2000年代晚期和2010年代早期,HTTPS开始广泛使用于保护所有类型网站上的网页真实性,保护账户和保持用户通信,身份和网络浏览的私密性。

有了这层解释,我们可以得出一个结论,HTTPS传输的信息比HTTP更为安全,如果有涉及账号等信息交互的时候,还是HTTPS更保险,更多的科普知识可以到这个链接去查看。维基百科-超文本传输协议

因此,给我们的站点加上HTTPS不仅看起来更高大上,更主要的是对自己的信息安全也有好处。所有为什么不给大麦的站点也加上这样一层保护呢?

Let’s Encrypt

看起来,这个标题是一句口号:“让我们加密!”,实际上它是一个专业提供HTTPS加密的网站,而且是免费,而且它的后台是Linux基金会。这些你登录一下就全明了。那我们如何去通过Let’s Encrypt给站点加密呢?网络上有许多种解释和说明,这里记录了大麦使用过的最最傻瓜的一种。使用certbot上提供的工具来实现。

步骤如下:(以下步骤应该在PS上执行)

  • 下载工具
1
2
cd /the/path/you/want/to/put/certbot/
wget https://dl.eff.org/certbot-auto
  • 运行工具

运行

1
2
chmod a+x certbot-auto
./certbot-auto

根据提示输入你的邮箱,选择你要加密的域名,一路逛飙,直到出现Congratulation的提示。此时,重启Apache服务器,就可以看到网站已经全系进入到HTTPS状态了。

后续几个问题的解决

为什么会出现“你与此网站之间的连接并非完全安全”的提示

这是因为,在当前网页上,还有使用HTTP协议来呈现元素的方式,要加全部的网站元素链接都改成HTTPS样式

证书的续期的问题

通过该方法申请的证书,只有90天的有效期,到期后就会失效。但我们可以在到期前无限次的续期。方法是通过以下命令:

1
certbot-auto renew

因此,我们将该命令写入crontab并定期执行就行了,例如在crontab -e中添加以下内容:

1
0 6 1 * * /root/certbot-auto renew

表示每月1号6点运行certbot-auto renew的命令。