letsencrypt certbot自动续订常用命令

查看证书信息

sudo certbot certificates

返回

Found the following certs:
  Certificate Name: fileserver.kkappstore.com
    Serial Number: 31f31965a147edf46bdb32154d572201585
    Key Type: ECDSA
    Domains: fileserver.kkappstore.com
    Expiry Date: 2023-08-02 03:02:37+00:00 (VALID: 49 days)
    Certificate Path: /etc/letsencrypt/live/fileserver.kkappstore.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/fileserver.kkappstore.com/privkey.pem

撤销证书

certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem

更改证书的密钥类型

certbot renew --key-type ecdsa --cert-name example.com --force-renewal

更新证书

Let’s Encrypt CA颁发短期证书(90天)。确保您至少在3个月内更新一次证书。

certbot renew

renew只更新即将到期的证书


certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start" --deploy-hook "echo deploy-hook run"

pre-hook 和 post-hook 分别是尝试更新证书(不一定更新)前后执行的指令

如果您希望钩子仅在成功续订后运行,–deploy-hook后添加指令

如果您手动强制更新证书,–force-renewal 忽略过期时间

所以,如果你需要手动更新证书

sudo certbot renew --force-renewal --deploy-hook "sh /home/huangshuxin/snap/renewCert.sh"

刷新后可以看到证书颁发日期改变了。

测试是否配置了自动续订

一般正确安装后就配置了自动续订

sudo certbot renew --dry-run

更新certbot的命令安装在以下位置之一:

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers

systemctl list-timers 可以看到 snap.certbot.renew.service 服务

添加运行时钩子

会自动运行 /etc/letsencrypt/renewal-hooks/ 下 deploy post pre 目录下的sh脚本

sudo sh -c 'printf "#!/bin/sh\nsh /home/huangshuxin/snap/renewCert.sh\n" > /etc/letsencrypt/renewal-hooks/deploy/afterRenew.sh'
sudo chmod 755 /etc/letsencrypt/renewal-hooks/deploy/afterRenew.sh

现在会在更新成功后自动执行钩子,不用再指定钩子函数

测试:

sudo certbot renew --force-renewal

自行设置自动续订

一般Certbot已经配置了自动定时运行。

如果你需要自行设置自动续订

Linux系统需要向/etc/crontab添加一个cron作业:

SLEEPTIME=$(awk 'BEGIN{srand(); print int(rand()*(3600+1))}'); echo "0 0,12 * * * root sleep $SLEEPTIME && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

总结

如果你想在新的服务器配置https证书

  1. 安装certbot(https://certbot.eff.org/instructions?ws=other&os=ubuntubionic)
  2. 拷贝项目中的 renewCert.sh 文件到~/snap/目录,renewCert.sh为更新成功后执行的脚本
  3. 添加更新成功运行时钩子:
sudo sh -c 'printf "#!/bin/sh\nsh /home/huangshuxin/snap/renewCert.sh\n" > /etc/letsencrypt/renewal-hooks/deploy/afterRenew.sh'
sudo chmod 755 /etc/letsencrypt/renewal-hooks/deploy/afterRenew.sh
  1. 测试: sudo certbot renew --force-renewal
  2. 进入网站,点击网址处的加密标志,查看颁发日期是否是新的。

如果你想手动更新https证书:

sudo certbot renew --force-renewal --deploy-hook "sh /home/huangshuxin/snap/renewCert.sh"

你可能感兴趣的:(网络,java,开发语言)