在上一篇文章中,易水介绍了如何 对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