在照着之前写过的文章去申请 Let’s Encrypt 证书时报错 , 发现系统不再被支持

1
2
3
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.

certbot-auto 不再支持所有的操作系统 . 根据作者的说法 , certbot 团队认为维护 certbot-auto 在几乎所有流行的 UNIX 系统以及各种环境上的正常运行是一项繁重的工作 , 加之 certbot-auto 是基于 python2 编写的 . 而 python2 即将寿终正寝 . 将 certbot-auto 迁移至 python3 需要大量工作 , 非常困难 , 因此团队放弃对其维护.

既然如此 , 现在我们还能继续使用 certbot 吗 ? certbot 团队使用了基于 snap 的新的分发方法

环境

CenterOS 7

Nginx

安装 Let’s Encrypt

1. 安装之前 , 需要先安装 snaps

1
yum install epel-release

2. 安装 snapd 并启用

1
2
yum install snapd
systemctl enable --now snapd.socket

3. 创建桥接

1
ln -s /var/lib/snapd/snap /snap

退出账号并重新登录 , 或重启系统 , 确保 snap 启用

4. 将 snap 更新至最新版本

1
2
sudo snap install core
sudo snap refresh core

5. 卸载已安装的 certbot

若在系统上已经部署过 certbot , 需要将其卸载先

1
2
3
yum remove certbot
rm /usr/local/bin/certbot-auto
rm -rf /opt/eff.org/certbot

6. 通过 snap 安装 certbot

1
snap install --classic certbot

7. 建立软连接

1
ln -s /snap/bin/certbot /usr/bin/certbot

8. 获取证书

确保 nginx 处于运行状态 , 需要获取证书的站点在 80 端口 , 并且可正常访问.

1
certbot certonly --nginx --email xxx@mail.com -d a.do.com -d b.do.com

按照 文章 所述接着配置

9. 更新证书

手动更新

1
certbot renew

如图 , 在生成时已经自动添加了个后台任务去定期自动 renew 证书 , 所以一般情况不用手动更新

参考资料

CSDN