外贸建站

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

料神Sam发布于 2018-04-03阅读 509721 次评论 19

说明:本文为旧文,文中内容可能已失效。如您是 VPS 建站,请自行使用 LNMP 安装包 (https://lnmp.org) 的 lnmp ssl add 命令来安装 SSL 证书。

首先,检查你的 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 证书,参考这篇教程:

注意如果你以前用过老的 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"

找到如下结果:

Certbot 对免费 Let's Encrypt 证书的自动续期,So Easy!-料网 - 外贸老鸟之路

/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 也会自己判断了,没有快到期之前,它也觉得没必要频繁续期。所以看看我们手动去续期的结果:

Certbot 对免费 Let's Encrypt 证书的自动续期,So Easy!-料网 - 外贸老鸟之路

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


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

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

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

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

Certbot 对免费 Let's Encrypt 证书的自动续期,So Easy!-料网 - 外贸老鸟之路

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


十、耐心等待验证

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

OVER!


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

Certbot 对免费 Let's Encrypt 证书的自动续期,So Easy!-料网 - 外贸老鸟之路

本站所有文章除注明“转载”的文章之外,均为原创。未经本站允许,请勿随意转载或用作任何商业用途,否则依法追究侵权者法律责任的权利。

分享到: 微信 新浪微博 QQ Qzone
料神Sam
识不足则多虑,威不足则多怒,信不足则多言。
SiteGround外贸建站主机优惠券

19条评论

发表我的评论

取消评论

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

我不是机器人
设为私密评论
添加表情

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

您的邮箱地址不会公开,仅仅用于收取回复。建议填写QQ邮箱,不宜填写工作邮箱。
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (没有就留空)
  • 问题验证:今年年份是?
呃,评论有点多哦.. 请稍等
  1. rexChrome · Windows 10

    老大,Certbot 的自动续期命令失效了,可以更新一下吗

    3年前 (2021-08-30)
    广东
    回复
  2. rexChrome · Windows 10

    Sam 老师,renew 命令失效了,提示
    -bash: /bin/certbot: No such file or directory
    能更新下方法吗?
    最后没办法只能删了再重新装 :grin:

    3年前 (2020-10-20)
    广东
    回复
  3. rexChrome · Windows 10

    yum -y install vixie-cron
    No package vixie-cron available.
    Error: Nothing to do
    Sam 老师,第二步就报错了。重新装了一遍 Certbot 也不行。

    4年前 (2020-07-17)
    广东
    回复
    • rexChrome · Windows 10

      @rex 自己搞定了。
      Centos 不同的版本安装命令不一样:
      # On CentOS 7 you need to use cronie:
      yum install -y cronie
      # 启用
      systemctl enable crond
      systemctl restart crond
      然后可以直接跳到第四步继续

      4年前 (2020-07-17)
      广东
      回复
      • rexChrome · Windows 10

        @rex 如果是 CentOS 7 的话,
        第七步重启 Cron 服务也应用:
        systemctl restart crond

        4年前 (2020-07-17)
        广东
        回复
  4. RachelChrome · Windows 10

    想请教下料神和其他大神,之前是通过建站公司搭建的网站,这个 ssl 证书要怎么操作呢?之前对这个不是很懂,看了课程和你的博客,才知道这个要安装 ssl 证书。求指导。谢谢

    4年前 (2020-05-01)
    重庆
    回复
  5. EchoChrome · Windows 7

    :mrgreen: 太强大了!完全只需要复制粘贴!真的只是两天时间,从买到主机到今天完成网站的基本搭建,老师真的是太厉害了!!!当然还要结合着老师的米课课程,才能更系统!

    5年前 (2019-01-10)
    广东
    回复
  6. LomiFirefox · Windows 10

    该评论为私密评论

    6年前 (2018-07-30)
    广东
    回复
    • Liaosam 外贸综合症患者.搜狗浏览器 · Windows 7
      @Lomi SiteGround 的主机是自动进行证书续期的。
      5年前 (2018-11-16)
      安徽
      回复
  7. LightstecChrome · Windows 7

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

    6年前 (2018-07-22)
    广东
    回复
    • LomiFirefox · Windows 10

      @Lightstec 我也想知道答案。

      6年前 (2018-07-30)
      广东
      回复
  8. 叮叮Chrome · Windows 7

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

    6年前 (2018-06-26)
    美国
    回复
  9. jamesChrome · Windows 7

    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.
    显示证书已经更新了,但是我现在打开网页的时候,还是显示证书在之前过期的状态,要怎么修改一下?

    6年前 (2018-06-20)
    浙江
    回复
    • 小璞叔叔搜狗浏览器 · Windows 7

      @james James, 我之前也一直受这个问题的困扰,明明显示证书没到期,可是网站打开却显示已到期,不安全的链接。
      今天误打误撞 关闭 nginx “service nginx stop” 再重启 nginx“service nginx restart”,之后小绿锁正常显示。
      不知道这个能不能帮到你。

      6年前 (2018-09-10)
      上海
      回复
      • 小璞叔叔Chrome · Windows 7

        @小璞叔叔 我按照上面的自动更新的步骤,等到过期都没能更新成功。
        于是就按照手动的方法:
        1)手动更新“/bin/certbot renew”。
        2)关闭 nginx “service nginx stop”。
        3)重新 nginx “service nginx restart”.
        完成之后,证书日期就更新成功了。 :mrgreen:

        5年前 (2018-11-15)
        上海
        回复
  10. 小璞叔叔搜狗浏览器 · Windows 7

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

    6年前 (2018-05-26)
    上海
    回复
  11. 水蓝石Chrome · Windows 10

    该评论为私密评论

    6年前 (2018-05-23)
    菲律宾
    回复
  12. fordyyChrome · Windows 10

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

    6年前 (2018-05-01)
    江苏
    回复
  13. fordyyChrome · Windows 10

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

    6年前 (2018-05-01)
    江苏
    回复