自动续期的免费ssl证书_薅羊毛

自建的个人网站使用了阿里的ssl证书,以前有一年有效期,现在被改为3个月,费时费力每次要续期,某猫总是喵呜喊着“打钱”。

只能想办法找免费方便的方案。

方案是:Let's Encrypt三个月免费证书 + certbot证书安装续期工具 + cron任务

1,安装certbot工具包

sudo yum install certbot

2,检查一遍环境

查看版本:

certbot --version

检查Nginx是否已安装并正在运行:

sudo systemctl status nginx

检查Nginx配置文件语法:

sudo nginx -t

确认你要替换证书的域名解析是否正确:

ping blog.yeyangt.cn #替换为你自己的域名

3,执行命令将现有证书替换为新证书

sudo certbot --nginx --nginx-server-root /usr/local/nginx/conf --nginx-ctl /usr/local/nginx/sbin/nginx -d blog.yeyangt.cn  #替换为你自己的nginx路径和域名

 这个命令会自动申请证书,并且修改nginx的配置文件,然后执行nginx -s reload。执行这个命令会让你填入邮件,以及同意协议,一步步操作即可。

4,确认证书已经是新证书了

最简单的方案是在自己的网站上查看,从浏览器中打开自己的网站,然后点击锁标志,然后查看证书

 或者在nginx配置中查看证书

或者查看certbot的日志

less /var/log/letsencrypt/letsencrypt.log

5、自动更新证书的定时任务配置

A、 创建或编辑根用户的crontab
sudo crontab -e 
B、添加凌晨两点的renew任务:
0 2 * * * /usr/bin/certbot renew --quiet --deploy-hook "systemctl reload nginx"
C、保存并退出
D、验证cron任务
sudo crontab -l | grep certbot
E、测试自动续期配置
sudo certbot renew --dry-run 
#--dry-run:模拟续期过程,不会实际更改任何证书。用于测试配置是否正确。
F、日志查看
less /var/log/letsencrypt/letsencrypt.log

certbot renew解释下:
1、会首先检查已有的证书是否即将过期,如果证书仍在有效期内,且距离到期还有较长时间,它就不会再次申请新的证书。当证书接近到期时,certbot renew 才会真正向Let’s Encrypt申请新的证书。

2、它是非交互模式下运行,即会自动续期,不需要用户干预。

 

6、其它:为letsencrypt.log配上定时清理

清理方案不再写了,与证书更新流程无关,只是建议配置上

 

posted @ 2024-12-14 23:56  叶扬  阅读(459)  评论(0)    收藏  举报