证书自动续签方案

证书自动续签方案

安装 acme.sh

1
2
3
4
git clone --depth 1 https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
alias acme.sh=~/.acme.sh/acme.sh

my@example.com 可以指定自己的邮箱。

修改默认 CA 服务商,默认的是 zerossl

1
./acme.sh --set-default-ca --server letsencrypt

主域名,子域名签发证书

可以使用 HTTP/DNSAPI 两种方式

1
acme.sh --issue -d example.com -w ./nginx/site/ 

--issue 表示要签发证书

-d 指定要签发的域名,签发之前要先设计好 DNS 解析到当前主机哦。

-w 指定网站的根目录。

--key-file 指定 key 文件写入哪里

--fullchain-file 指定 cer 文件写入哪里

泛域名签发证书

1. 设置 DNS API

必须使用 DNS API 的方式

如果是阿里云的证书,可以使用以下方式。(其它参考)

1
2
export Ali_Key="<key>"
export Ali_Secret="<secret>"

2. 签发泛域名证书

1
acme.sh --issue -d example.com -d '*.example.com' --dns dns_ali

将签发的证书安装到指定目录下

程序将会每 60 天重新签发

1
2
3
4
5
6
7
acme.sh --install-cert -d example.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "service nginx force-reload"


acme.sh --install-cert -d puff.golang.space --key-file       /home/apps/gb/nginx/certs/key.pem  --fullchain-file /home/apps/gb/nginx/certs/cert.pem --reloadcmd     "/home/apps/gb && docker compose exec -it nginx nginx -s reload"

其它

1
2
3
4
# 升级并保持自动更新
acme.sh  --upgrade  --auto-upgrade
# 关闭自动更新
acme.sh --upgrade  --auto-upgrade  0

参考:

https://github.com/acmesh-official/acme.sh

https://www.orcy.net.cn/1337.html

https://developers.weixin.qq.com/community/develop/article/doc/0008ae40ca0af83d0d7e3bb6b56013

https://cloud.tencent.com/developer/article/2218945?areaSource=102001.10&traceId=XFvJArbxeBBM3HvlN8MOV

https://www.jianshu.com/p/387dcb9566f7

Licensed under CC BY-NC-SA 4.0
本文阅读量 次, 总访问量 ,总访客数
Built with Hugo .   Theme Stack designed by Jimmy