Certbot对免费Let’s Encrypt证书的自动续期,So Easy!

2018-04-03发布在 WordPress建站97332 次访问

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

执行命令:

find / -name "certbot"

如果找到类似于 /bin/certbot  的结果,那么说明已安装了 Certbot(LNMP 1.4 的 SSL安装集成进去了,默认是装了的。LNMP1.3 则是以前是老的 lets encrpyt 程序);

如果没有找到,先下载 Certbot 安装 Let’s Encrypt 证书。安装 Certbot 并给网站安装 SSL 证书,参考这篇教程:

WordPress建站:Linode VPS上部署SSL启用HTTPS全攻略

这阵子,外贸圈子里最热的就两个事情:1)从2017年1月1日起,国家税务总局开始清查境外账户 2)从2017年1月1日起,谷歌 Chrome 浏览器将会把采 ..

注意如果你以前用过老的 Let's Encrypt 证书程序,那么要先彻底删除以前老的程序,才能安装 Certbot,不然会出错。逐个执行下面3行命令,把 DOMAIN 换成你的域名,如 www.xyz.com(具体是什么可以去/etc/letsencrypt/live 目录下看一下)

rm -rf /etc/letsencrypt/live/DOMAIN
rm -rf /etc/letsencrypt/renewal/DOMAIN.conf
rm -rf /etc/letsencrypt/archive/DOMAIN
rm -rf /opt/letsencrypt

即可重新安装 Certbot。

OK,如果你已经安装好了 Certbot,给网站安装好了 SSL 证书,那么进入本篇文章的主题。

一、检查 Cron 服务状态

service crond status

如果执行后提示:crond (pid  xxxxx) is running…  代表正常运行中,则可以跳过下面第二、三两步 。

如果提示错误,不识别的服务,则先按照 2)和 3)执行安装和启动。


二、安装 cron 服务

依次输入以下 2 条命令并回车执行

yum -y install vixie-cron

yum -y install crontabs

成功安装 Cron 之后,启动 cron 服务。


三、启动 Cron 服务

service crond start

执行后会出现:Starting crond:         [  OK  ]  的提示,表明启动成功。

继续执行开机启动服务命令,把 Cron 加入开机启动的服务列表中:

chkconfig --level 345 crond on

安装完检查一下 Cron 服务状态

service crond status

如果提示:crond (pid  xxxxx) is running…  代表正常运行中。


四、搜索 cron 文件所在位置

输入命令:

find / -name "cron"

找到如下结果:

/var/log/cron 这个是日志文件位置,不管它
/var/spool/cron 这里是所有的自动执行任务的 cron 文件存放位置

用 Xftp 打开 /var/spool/cron,看看 cron 目录下有没有文件。

  • 如果没有,创建 cron 文件,按照步骤五。
  • 如果有,跳过步骤五。

五、创建 Cron 文件

输入以下命令:

crontab -e

输入此命令后,提示如下:

no crontab for root – using an empty one

此时相当于准备创建一个 root 用户的空白 crontab 文件。直接按住 shift+分号(打出冒号来),然后输入 q,回车。退出编辑文件状态。

此时会提示创建了一个 new crontab (只不过是个空的文件)。接着我们用 Xftp 把 /var/spool/cron 这个路径下生成的名为 root 的文件下载下来,用 Notepad++ 编辑。


六、添加编辑 Certbot 的自动续期命令

在 root cron 文件中,复制以下代码,粘贴,保存,上传。

0 3 */7 * * /bin/certbot renew --renew-hook "/etc/init.d/nginx reload"

以上含义是:每隔 7 天,夜里 3 点整自动执行检查续期命令一次。续期完成后,重启 nginx 服务。


七、重启 Cron 服务,使之生效

service crond restart

重启之后,一切搞定!


八、你想手动尝试 Certbot 证书更新?

一般是直接使用 renew 命令,即:

/bin/certbot renew

但是现在 Certbot 也会自己判断了,没有快到期之前,它也觉得没必要频繁续期。所以看看我们手动去续期的结果:

由于我们之前网站是 2月14日安装的 Let’s Encrypt 证书,到5月14日才到期。现在去 renew 太早了,Certbot 直接把我们给否了。


九、Certbot 到底在证书到期前多久会去续期呢?

可以查看证书的 Renewal 配置文件

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

下载到本地,notepad++ 打开,可以看到具体配置信息如下:

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


十、耐心等待验证

到4月15日以后再看一下证书有没有自动续期即可。

OVER!


喜欢这篇文章的朋友们,不要吝惜你们的赞哦!

分享到微信朋友圈

LiaoSam
LiaoSam
外贸综合症患者

9条评论

发表我的评论

取消评论

邮箱白名单说明:最近料网自动提醒邮件经常会被一些邮件服务商拦截。为了您顺利并及时地收取留言被回复的提醒邮件,请在您邮箱中把料网 liaosam.com 加入白名单域名。

已读说明
设为私密评论
添加表情

Hi,您需要填写昵称和邮箱!

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
呃,评论有点多呢... 料网小秘书为您玩命加载中...
  1. #8

    该评论为私密评论

    3周前 (07-30)回复
  2. #7
    Lightstec

    请教料神, wordpress有没有插件可以自动更新Let’s encrypt 证书? 我现在网站Lightstec试certbot自动更新不成功。如果有插件那是很方便。

    4周前 (07-22)回复
    • @Lightstec 我也想知道答案。

      3周前 (07-30)回复
  3. #6

    按照步骤下来,到这一步输入 /bin/certbot renew 显示No such file or directory,求大神指教,谢谢!

    2个月前 (06-26)回复
  4. #5
    james

    The following certs are not due for renewal yet:
    /etc/letsencrypt/live/www.myweb.com/fullchain.pem expires on 2018-09-18 (skipped)
    No renewals were attempted.
    显示证书已经更新了,但是我现在打开网页的时候,还是显示证书在之前过期的状态,要怎么修改一下?

    2个月前 (06-20)回复
  5. #4
    小璞叔叔

    “五、创建 Cron 文件” 我一直创建不了,参考了之前一篇文章之后,发现了“直接按住 shift+分号(打出冒号来),然后输入 q,回车。” 这里应该是输入“wq”,然后问题就解决了。

    3个月前 (05-26)回复
  6. #3
    水蓝石

    该评论为私密评论

    3个月前 (05-23)回复
  7. #2

    而且我重新安装certbot后还是没有/bin/cerbot这个文件

    4个月前 (05-01)回复
  8. #1

    删除原文件重新安装ssl证书,重启nginx后,网站上显示404not found然后一个横线nginx,求大神指教,不知道应该怎么处理

    4个月前 (05-01)回复