之前一直使用阿里云的免费个人证书,后来阿里调整了个人证书的有效期只有90天,目前我有一个主域名以及四个子域名,每次到期都要挨个申请替换,非常麻烦,最近找到一个可以自动申请续期的工具。
EAB 免费证书
官网
EAB KID:登录后根据引导创建
EAB MAC Key:登录后根据引导创建
安装
安装教程参考官方文档
下面是国内安装的方法
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m 824672177@qq.com
注意不能直接拷贝acme.sh文件单独运行,否则后面DNS API会找不到
安装之后会自动创建定时任务
申请证书全过程
首次运行
注册 ACME 账户(首次运行)
使用 EAB 凭证绑定您的 ACME 账户。
acme.sh --register-account --server https://acme.litessl.com/acme/v2/directory \
--eab-kid 官网创建 \
--eab-hmac-key 官网创建
配置环境变量
导入 DNS 提供商的 API 凭证以实现自动验证。
export Ali_Key="阿里云申请"
export Ali_Secret="阿里云申请"
注意此AccessKey需要注意过期时间
申请证书
执行命令以验证域名所有权并签发证书。
acme.sh --issue --server https://acme.litessl.com/acme/v2/directory \
--dns dns_ali \
-d "*.jiusia.top" \
-d "jiusia.top" \
--keylength ec-256
这里裸域名和通配域名一起申请
部署证书
acme.sh --install-cert -d "*.jiusia.top" \
--ecc \
--key-file /etc/nginx/ssl/jiusia.top.key \
--fullchain-file /etc/nginx/ssl/jiusia.top.cer \
--reloadcmd "service nginx force-reload"
验证下证书的解析域名
[root@ecs-296788 ssl]# openssl x509 -in /etc/nginx/ssl/jiusia.top.cer -text -noout | grep "DNS:"
DNS:*.jiusia.top, DNS:jiusia.top
可以看到主域名和子域名都已解析。
定时任务会根据生成的配置信息重新申请证书,验证通过之后覆盖然后重启nginx