Certbot对免费Let's Encrypt证书的续期

摘要:
Let’sEncrypt证书的有效期为90天,到期之前我们得给证书续期,不然依赖此证书的网站等服务会出现问题。如果没有找到,先下载Certbot安装Let’sEncrypt证书。续期certbotrenew--renew-hook"servicenginxreload"--renew-hook"servicenginxreload"表示续期完成后,重新加载nginx服务。但是现在Certbot也会自己判断了,没有快到期之前,它也觉得没必要频繁续期。其实安装certbot时,certbot已经为我们提供了两种自动续期的方式。-d/run/systemd/system&&perl-e'sleepint'&&certbot-qrenew建议做如下修改,证书续期的同时让nginx重新加载证书文件。

Let’s Encrypt 证书的有效期为90天,到期之前我们得给证书续期,不然依赖此证书的网站等服务会出现问题。

准备

首先,检查你的 Let’s Encrypt 证书是否管理程序是 Certbot(你是否安装了 Certbot)。

直接敲击certbot命令,若能找到命令就是了。

或者执行命令:

find / -name "certbot"

如果找到类似于/bin/certbot的结果,那么说明已安装了 Certbot。

如果没有找到,先下载 Certbot 安装 Let’s Encrypt 证书。

续期

certbot renew --renew-hook "service nginx reload"
--renew-hook "service nginx reload" 表示续期完成后,重新加载nginx服务。

或者

certbot renew
service nginx restart/reload

若报错:

Attempting to renew cert (proxy.piaoling.win) from /etc/letsencrypt/renewal/proxy.piaoling.win.conf produced an unexpected error: Problem binding to port 80: Could not bind to IPv4 or IPv6.. Skipping.

此时需要停止掉占用80端口的进程,待续期完成后再重新开启该进程,比如:Nginx、Apache等。

Certbot对免费Let's Encrypt证书的续期第1张

此时表示成功续期90天!

但是现在 Certbot 也会自己判断了,没有快到期之前,它也觉得没必要频繁续期。会出现如下结果:

Certbot对免费Let's Encrypt证书的续期第2张

Certbot 到底在证书到期前多久可以去续期呢?

在/etc/letsencrypt/renewal 目录下,有你的网站的 renewal 的配置文件:xxxxxx.conf

从这个文件中我们可以看到,第一行虽然用 # 注释掉不生效了,但是我们可以知道 Certbot 会在证书到期前30天才可以开始重新续期。

自动续期

每次都手动续期的话,可能比较麻烦,也容易忘,我们可以写个的脚本添加到Crontab来实现自动续期。

其实安装certbot时,certbot已经为我们提供了两种自动续期的方式。

1、方式一:crontab

我们可以在系统中找到/etc/cron.d/certbot文件。

文件内容如下:

0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

建议做如下修改,证书续期的同时让nginx(其他工具同理)重新加载证书文件。

0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew --renew-hook "systemctl reload nginx"

------ ! -d /run/systemd/system:判断系统中是否运行于systemd服务,若有则不进行任何操作。为什么会这样呢,因为certbot在运行有systemd服务的系统中提供了systemd.timer的证书续期方式,也就是第二种方式。

2、方式二:systemd timer

对于运行有systemd服务的系统,我们可以在/lib/systemd/system中找到certbot.servcie,certbot.timer。

同样我们需要修改certbot.service文件,将文件内容中的/usr/bin/certbot -q renew修改为/usr/bin/certbot -q renew --renew-hook "systemctl reload nginx"。

免责声明:文章转载自《Certbot对免费Let's Encrypt证书的续期》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle数据库的创建及安装odac后oracle可能出现不能访问情况解决pynvml.NVMLError_LibraryNotFound: NVML Shared Library Not Found 报错和解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker环境下自动更新Let’s Encrypt SSL证书

说明:以下脚本在Ubuntu 18.04运行通过,大部分脚本执行需要管理员权限。 1. 准备docker环境 # 安装必备工具包 apt-get -y install apt-transport-https ca-certificates curl software-properties-common # 添加docker阿里云源,相对官方源速度更快...

用certbot申请Let's Encrypt泛域名证书

什么是Let's Encrypt? 目前世界上就只有为数不多的几家域名证书签发机构得到浏览器的认可,而Let‘s Encrypt 就是其中一家,并且你可以申请到免费的证书,当然你如果想要付费也行,很多机构证书动辄几千几万一年。如果我们只想搭建个测试环境有需要https,我们肯定不会去花这个冤枉钱,当然免费的午餐并没有那么好吃,Let's Encrypt申请...

Linux 下使用acme.sh生成Let's Encrypt泛域名免费证书

一、需求场景 自从数年前苹果开始强制要求所有IOS所有应用必须全部使用 https,以及google、baidu、bing 这三大搜索引擎开始大规模支持 https,https 已经成为现在保障网站完全的最基础需求,大量的供应商开始出现,并提供证书服务,但是对于一些非盈利性质的网站或博客站长,或公司测试环境也想使用https认证时,并不想在这上面投入太多的...

LNMP安装Let’s Encrypt 免费SSL证书方法:自动安装与手动配置Nginx

前几天介绍了最新StartSSL免费SSL申请与配置,很多人看到部落介绍SSL证书安装时总是推荐了OneinStack,因为OneinStack提供了一键添加和配置Let's Encrypt 免费SSL证书的脚本,你在创建虚拟主机绑定域名就可以一步安装好SSL。 其实LNMP(即LNMP.org版LNMP脚本)更新到了1.4版本后已经增加了增加ssl选项...