升级 Let’s Encrypt

介绍

前一段时间 Let’s Encrypt 发信说证书快要过期了,估计是原有的 certbot 不兼容了,需要升级到新版本。之前部署 HTTPS 证书的文章:

环境

  • CentOS 7.6.1810
  • Nginx 1.16.0

文档

官网已经给出了详细的教程,只要选择当前使用的操作系统与 HTTP 服务器:

连接到服务器

SSH 连接到服务器并获得 sudo 权限,可以简单地执行 su 切换到 root 用户。

安装 snapd

严格按照文档指示执行命令即可。

1 2 3 4 
$ sudo yum install epel-release $ sudo yum install snapd $ sudo systemctl enable --now snapd.socket $ sudo ln -s /var/lib/snapd/snap /snap 

这里一定要安装 classic 版本,否则后面安装 certbot 时会报错:

1 2 3 
$ sudo snap install --classic certbot error: cannot install "certbot": classic confinement requires snaps under /snap or symlink from /snap to /var/lib/snapd/snap 

更新 snapd

虽然文档中将更新的两条命令放在一起执行,但是会报错。

1 2 3 
$ sudo snap install core; sudo snap refresh core error: too early for operation, device not yet seeded or device model not acknowledged error: too early for operation, device not yet seeded or device model not acknowledged 

分开执行就不会有问题:

1 2 3 
$ sudo snap install core $ sudo snap refresh core snap "core" has no updates available 

安装 Certbot

移除已安装的 certbot,安装新版本 certbot,建立方便使用 certbot 的符号链接

1 2 3 4 
$ sudo yum remove certbot $ sudo snap install --classic certbot certbot 1.21.0 from Certbot Project (certbot-eff✓) installed $ sudo ln -s /snap/bin/certbot /usr/bin/certbot 

更新证书

执行更新命令,按照提示选择要更新的域名:

1 
$ sudo certbot --nginx 

访问下网站确认证书已生效。

设置自动更新证书

更新证书测试,确定没有任何异常:

1 
$ sudo certbot renew --dry-run 

了解 certbot renew 的参数,修改更新证书命令:

1 
$ certbot --help renew 

需要编辑原有的 crontab 定时任务,将其更新为新版本:

1 2 
$ sudo crontab -e 0 */12 * * * test -x /usr/bin/certbot && perl -e 'sleep int(rand(3600))' && certbot renew --post-hook "/usr/sbin/nginx -s reload" >> /root/certbot.log 

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/14639.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>