ssl证书续签

2024/08/16

简介

​ 由于现在阿里云上申请的SSL证书,免费的版本,由原来的1年缩短到3个月了,所以就记录下使用acme的自动续签程序

步骤

阿里云设置

img

安装acme

下载GitHub

#解压
unzip acme.sh-master.zip
cd acme.sh-master
#example 替换成自己的邮箱
./acme.sh --install -m example@aliyun.com

申请证书

#输入阿里云子账户的密钥
export Ali_Key="example"
export Ali_Secret="example"
#example.com 替换成自己需要申请的域名 
acme.sh --issue --dns dns_ali -d example.com  --force

生成nginx的ssl文件

#example.com 替换成自己需要申请的域名 
#example 替换成自己需要保存的路径
acme.sh --install-cert -d example.com \
--key-file       /example/example.key  \
--fullchain-file /example/example.pem \
--reloadcmd     "systemctl restart nginx"

编写监控脚本

vi /example/is_ssh.sh

#!/bin/bash
#判断证书是否即将到期
# 设置 acme.sh 的路径
ACME_SH_PATH="/root/.acme.sh/acme.sh"

# 你想要监控的域名
DOMAIN="example.com"

# 获取当前日期
CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

# 获取证书的到期日期
EXPIRY_DATE=$($ACME_SH_PATH --list | grep $DOMAIN | awk '{print $6}')

# 计算当前日期与到期日期的天数差
DAYS_LEFT=$(( ($(date -d "$EXPIRY_DATE" +%s) - $(date -d "$CURRENT_DATE" +%s)) / 86400 ))

echo "h--expire--$DAYS_LEFT"
# 设置通和续签的命令,当证书有效期小于等于2时
if [ "$DAYS_LEFT" -le 2 ]; then
    # 这里你可以放入你想要的操作,比如发送邮件,重启服务等
    curl "http://example:port/example?mailTo=example@aliyun.com&title=h-domain-name-expire&content=h-domain-name-expire"

	#运行续签脚本
	sh /example/example.sh
fi

编写续签脚本

vim /example/example.sh

#!/bin/bash

source /root/.acme.sh/acme.sh.env
source /root/.bashrc
rm -rf /root/.acme.sh/*.carlme.com_ecc
mkdir -p /example/
rm -f /example/*

#输入阿里云子账户的密钥
export Ali_Key="example"
export Ali_Secret="example"
#example.com 替换成自己需要申请的域名 
acme.sh --issue --dns dns_ali -d example.com  --force

#example.com 替换成自己需要申请的域名 
#example 替换成自己需要保存的路径
acme.sh --install-cert -d example.com \
--key-file       /example/example.key  \
--fullchain-file /example/example.pem \
--reloadcmd     "systemctl restart nginx"

添加定时任务

#每日凌晨监控一次
0 1 * * * sh /example/is_ssh.sh  >/dev/null 2>&1

参考资料

(本篇博文完结;中文字数一共:1809字,英文字数一共:368 字)


扫扫加关注公众号 让我们一起学习一起成长

(转载本站文章请注明作者和出处 IT超仔

Post Directory