除了各个第三方博客平台之外,我还一直保有一个自建的博客网站https://zxs.io/,还有几个其他的域名用做小工具之类的,之前一直使用阿里云免费https证书,一次申请可以用一年,但现在阿里云免费证书缩短到3个月了,而我又有好几个域名,导致我每隔几周就必须重新申请配置一次https证书,很麻烦。后来发现了Certbot这个免费开源软件,居然可以免费并且自动定期更新证书,太方便了。
在介绍Certbot之前,必须先介绍下 Let’s Encrypt。 Let’s Encrypt是一个免费的、自动化的、开放的证书颁发机构(Certificate Authority,简称 CA),由 Internet Security Research Group(ISRG)于 2016 年推出,它的诞生之初就是为了推进整个互联网的https化,所以它提供了免费的https证书。 另外Let’s Encrypt 设计了一套自动化协议称为 ACME(Automatic Certificate Management Environment),基于这套协议,你可以实现证书的自动化申请、安装和续期。 而Cerbot就是实现了ACME协议最知名的软件。
Certbot是由 Electronic Frontier Foundation (EFF) 创建的,并且是一个开源项目。Certbot 主要用于自动获取和续订由 Let’s Encrypt 颁发的免费 SSL/TLS 证书。接下来就以我的博客为例,教下大家如何使用Certbot的方法,主要使用方法还是来源于官网Certbot 。
首选在这个页面https://certbot.eff.org/instructions选择你使用的Web容器和操作系统版本,比如我使用的是Nginx和Ubuntu20,选择后下面就会列出详细的操作步骤。
接下来仅需要三步即可完成Sertbot的配置和使用,就是安装、配置、校验。安装方法官网推荐了snapd这个包管理软件,但可能你也和我一样没有安装snapd,所以首先需要安装下snapd,之后按官网命令安装Certbot即可。但我实测使用apt也是可以正常安装的。 接下来就是配置。
sudo certbot --nginx
直接执行上面的命令,certbot就会自动给配置好nginx,我初次使用的时候还有点疑惑,就怎么简单吗?实际上确实就这么简单,这一步中certbot会解析你的nginx配置,然后申请相应域名的证书,并修改nginx配置文件将证书配置写入,然后还会触发nginx的reload让证书生效,这时候你的网站https就已经在使用新的https证书了,打开chrome浏览器你就可以看到类似的证书声明。
最后就是使用Certbot自带的校验功能,验证证书自动更新的功能是否正常了。直接执行下面这条指令。
sudo certbot renew --dry-run
你在终端里看到类似这样的输出就说明已经配置成功了。
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/xindoo.xyz.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for xindoo.xyz and 11 more domains
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/xindoo.xyz/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
最后总结下,Certbot安装和配置还是相当简单的,而且自动更新的功能真是省了我的大麻烦,如果你自己有个网站,并且需要配置https(建议所有网站都配置),真的很推荐使用Certbot这个软件。