Hugo博客公告弹窗

SSL证书签发脚本

   
文章摘要
摘要小助理今天溜号啦……😜

背景

我通过AI制作了不少关于签发ssl证书的脚本,目的是方便无脑安装,不需要懂代码。

但全都是基于acme.sh这个工具来设计的脚本,而且证书申请有点慢,有时还会申请失败。

然后我发现了certbot, 安装证书可谓神速!

certbot文档: https://eff-certbot.readthedocs.io/en/latest/using.html#managing-certificates

由于我建站都是使用的宝塔面板(7.7.0原版),所以结合宝塔设计了此脚本,

为什么我不用宝塔自带的方式安装证书,因为我就没安装成功过~

脚本

环境:ubuntu22.04

certbot: 基于Let’s Encrypt (默认ecc证书)

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/ssl-cert.sh && chmod +x ssl-cert.sh && ./ssl-cert.sh

其他

首次安装证书后,需要到宝塔面板,选择站点,找到ssl保存一下,目的是之后的自动续签。

安装成功后,选择菜单4,测试续签是否正常,看到renewals succeeded说明正常了。

修改续签定时任务

查看原本的certbot定时任务:

cat /etc/cron.d/certbot

其实就是在后面添加了 --deploy-hook "/etc/init.d/nginx restart"参数,目的是重启nginx,使其生效。之后就可以高枕无忧的自动续签证书了

证书路径

certbot生成的证书路径是:/etc/letsencrypt/live

续签配置路径:/etc/letsencrypt/renewal

脚本会把证书复制到站点证书目录

certbot会在证书离到期日还剩30天内续签证书

友情提示

如果一个域名在短时间内,多次申请,全部成功(大概6次吧,不记得了),会提示一周后在申请,我是为了测试脚本才遇到的bug。


其他

如果没有创建/etc/letsencrypt/live/aaaa.com目录,可以手动,例如:

sudo mkdir -p /etc/letsencrypt/live/aaa.com
sudo ln -sf /etc/letsencrypt/archive/aaa.com/privkey1.pem /etc/letsencrypt/live/aaa.com/privkey.pem
sudo ln -sf /etc/letsencrypt/archive/aaa.com/fullchain1.pem /etc/letsencrypt/live/aaa.com/fullchain.pem
sudo ln -sf /etc/letsencrypt/archive/aaa.com/cert1.pem /etc/letsencrypt/live/aaa.com/cert.pem
sudo ln -sf /etc/letsencrypt/archive/aaa.com/chain1.pem /etc/letsencrypt/live/aaa.com/chain.pem
CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-12-03 08:00
clarity统计