acme.sh脚本 - Aliyun&DNSPOD使用API快速 签发Let's Encrypt泛域名SSL证书

使用说明
acme.sh 是一款用于签发 Let's Encrypt 证书的脚本。本脚本是原项目的生成证书指令的集合。

原项目 https://github.com/Neilpang/acme.sh

本项目 https://github.com/nanqinlang-script/acme

1、Debian/Ubuntu

apt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y

2、CentOS

yum update && yum install curl -y && yum install cron -y && yum install socat -y

安装acme.sh

curl https://get.acme.sh | sh

或者

wget -O - https://get.acme.sh | sh

获取DNSPOD API

1、域名解析

这里是采用DNSPOD API自动获取证书的方式,所以我们需要将申请证书的域名添加在DNSPOD解析。
登入DNSPOD后台,在"安全设置"中,找到上图,添加创建API。
弹出的界面我们需要复制且记录下信息。因为只显示一次。我们需要ID和Token。

也可以使用Aliyun DNS 创建API获取Aliyun的Access Key ID和Access Key Secret
获取地址:https://ak-console.aliyun.com/#/accesskey

3、输入API

export DP_Id="ID数字"
export DP_Key="Token字符串"

将上面的两行脚本ID和KEY分别对应我们获取的API的ID和Token,然后在SSH中帖进去输入回车。

4、签发证书SSL

~/.acme.sh/acme.sh --issue -d *.xxx.com -d xxx.com --dns dns_dp

根据需要换成我们的域名或者是泛域名或者其他多个二级域名都可以自动获取申请Let's Encrypt泛域名证书。整个过程只要我们上面配置没有问题,下面都是自动的。

脚本会自动等待 120 秒来验证信息,签发成功后,就会给出 CSR、KEY、CERT 保存的路径

成功申请到证书,且证书文件都被自动存放在/root/.acme.sh/对应的域名文件夹中。我们可以下载到本地保存或者是在应用证书的时候直接调用这个目录的证书。且从文档中看到这个脚本"自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书",所以我们在部署SSL的时候直接调用默认位置,不要复制到其他目录。

证书说明

ca.cer:中间证书
yourdomain.key:证书密钥
yourdomain.cer:站点证书
fullchain.cer:站点证书+中间证书

fullchain是完整的证书,包括了CA根证书
key是密钥,安装证书时需要用到
其他单域名证书的签发方法与此类似

续签问题
安装了ACME后,它会添加一个自动任务到你服务器的Cron里,每天都会检查你的证书是否快要过期,ACME会自动帮你续签

发表新评论