Let`s Encrypt 生成免费自动续签 HTTPS 证书

Lets Encrypt是一个免费的证书授权机构(CA),其通过ACME 协议接口自动签发数字证书,来让你省去证书过期的烦恼。

ACME客户端有很多,Lets Encrypt 官网推荐Certbot ,下面是具体获取免费证书的流程:

一、安装 Certbot 客户端

二、生成证书

上述命令会为 yoursite.com 和 www.yoursite.com 这两个域名生成证书,使用 –weroot 模式会在 /your/site/root 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,certbot 会通过访问 yoursite.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。

生成的证书会被放置在 /etc/letsencrypt/live/yoursite.com/ 目录下。我们要用到的有两个 fullchain.pem 和 privkey.pem

三、配置证书

在 nginx 配置对证书:

四、自动更新 SSL 证书

Let’s Encrypt 提供的证书只有90天的有效期,我们必须在证书到期之前,重新获取这些证书,certbot 给我们提供了一个很方便的命令,那就是 certbot renew。 通过这个命令,他会自动检查系统内的证书,并且自动更新这些证书:

上述命令需要手动在证书到期前执行,来更新证书。为了更方便,我们可以启动一个定时任务,来完成自动更新

CentOS 7 上设置定时任务有多种方式,如:crontab、systemd timer、at等。本文采用crontab。

我们设置每隔两个月执行一次更新命令,并重启 nginx。首先看下 crontab 任务格式:

其中,五个星号分别代表分钟、小时、日、月、周,可以使用以下符号:

*: 代表任意值

,:代表多个值

-:代表一个范围

/:代表间隔时间

所以我们的命令如下:

上述命令表示,每隔两个月的4号凌晨3点,重新执行cerbot证书续期命令,执行完后重启nginx,并生成日志;

下面是具体设置定时任务步骤:

1、执行命令 crontab -e

2、输入命令  0 3 4 */2 * certbot renew –post-hook “nginx -s reload” >> /var/log/certbot-renew.log 2>&1

保存并退出。

系统提示:

表示定时任务设置成功!

可以通过 crontab -l 来查看定时任务是否设置成功。

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

评论

电子邮件地址不会被公开。