让你的网站支持 https 访问

回本系列文章目录

在上一篇文章中,易水介绍了如何 对wordpress博客进行百度熊掌号改造,本篇文章将会介绍如何让你的网站支持 https 访问。

昨天在访问易水博客时,突然发现提示网站不安全,仔细一看是网站的 ssl 证书过期了。回想了一下,应该是上次在升级 Ubuntu 时导致证书不能正常更新造成的,所以需要重新更新一下证书。

易水博客上使用的是 letsencrypt.org 提供的免费证书方案。letsencrypt 是一个可以发放证书的 CA,只要在网站主机上运行一个支持 ACME 协议的程序,就可以通过它到 letsencrypt 获取、更新证书。

需要注意的是,要使用 letsencrypt 的证书方案,你需要能访问网站主机的 Linux shell。以下操作均需在网站主机的 shell 中操作。按网站上的建议,首先需要下载 certbot。易水博客上运行的是 Ubuntu + Nginx 组合,所以参考的是这篇文档

在 Ubuntu 18.04 上安装 certbot 需要 snapd,一般 snapd 在 Ubuntu 18.04 上是缺省安装的,不过易水的网站上不知为什么没安装,所以需要先安装它:

$ sudo apt install snapd

Snap 是一个全新的软件应用环境,它把软件封装在类似于 Docker 的容器中,即开即用。所以接下来就需要下载 Snap core 软件,然后安装 Certbot:

$ sudo snap install core
$ sudo snap refresh core
$ sudo snap install --classic certbot

上面的下载需要比较长时间,如果你总是下载失败,可能需要设置 snap 使用代理下载。安装完成后,需要创建一个符号链接,以保证 certbot 在你的执行路径中:

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

接下来就可以获取并安装证书了, Certbot 提供了单步操作,集获取证书、更新 Nginx 配置、使能 https 于一体,易水就偷了点懒,直接使用这条命令了,按命令的提示操作即可:

$ sudo certbot --nginx

执行完这条命令后,你的网站就支持 https 访问了。下载的证书放在 /etc/letsencrypt/live 目录中,你也可以查看一下 Certbot 对 Nginx 配置的修改。

不过这种方式获得的证书有限期只有3个月,所幸上述命令会启动定时任务定期去更新证书,所以你还需要测试一下证书能否正常更新:

$ sudo certbot renew --dry-run

如果由于某种原因你想删除 Certbot 安装的证书,你可以使用这条命令:

$ sudo certbot delete

参考文档

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注