使用acme.sh自动签发并续期ssl泛域名证书
♨️不推荐这种方式了,更推荐使用开源项目 1panel 来管理域名和证书啦!用起来非常方便
网站的ssl泛域名证书前几天到期了,以前使用的ssl平台升级了,使用起来有点繁琐,所以这次采用acme.sh来实现自动签发泛域名+续期的功能。
1.安装acme.sh
acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.
使用国内源的acme,如果你可以流畅使用github,可以使用github源的acme
记得修改命令后边的邮箱
curl https://gitcode.net/cert/cn-acme.sh/-/raw/master/install.sh?inline=false | sh -s email=my@example.com
安装完成后重新打开ssh窗口
2.更新CA源
执行acme.sh命令
acme.sh --set-default-ca --server letsencrypt
3.设置DNS 执行申请命令
把 ddddddddd.top 换成自己的一级域名
执行acme.sh命令
acme.sh --issue -d ddddddddd.top -d *.ddddddddd.top --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
执行完命令之后会返回下边的东西
我们需要将两个 TXT value 内的值进行解析
4.配置域名解析
找到你的域名注册商,然后添加两条TXT解析记录
5.生成证书
把 ddddddddd.top 换成自己的一级域名
执行acme.sh命令
acme.sh --renew -d ddddddddd.top -d *.ddddddddd.top --yes-I-know-dns-manual-mode-enough-go-ahead-please
不出意外你会看到证书生成的路径
6.快速复制到nginx配置下
把 ddddddddd.top 换成自己的一级域名
确保 /etc/nginx/ssl/ddddddddd.top 目录存在
执行acme.sh命令
acme.sh --installcert -d ddddddddd.top --key-file /etc/nginx/ssl/ddddddddd.top/ddddddddd.top.key --fullchain-file /etc/nginx/ssl/ddddddddd.top/ddddddddd.top.cer --reloadcmd "service nginx force-reload"
其实就是把证书cp过去~~
7.配置nginx ssl
创建 ssl.conf
把证书参数配置上
touch ssl.conf
ssl_certificate /etc/nginx/ssl/ddddddddd.top/ddddddddd.top.cer;
ssl_certificate_key /etc/nginx/ssl/ddddddddd.top/ddddddddd.top.key;
然后在nginx.conf里边 ssl server inlude一下
include /etc/nginx/ssl.conf;
8.自动续期
泛域名证书有效期是3个月的,acme.sh 在证书到期30天前的时候会自动帮你续期到你的ssl证书位置~
当然你也可以手动执行命令重新签发一次
acme.sh --cron -f