Let’s Encrypt: DNS API 免费申请 泛域名 / 野卡证书(ACME.SH 方式)
内容
- https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
- 支持 ACME V2 的软件:https://letsencrypt.org/docs/client-options/
注意
- 本教程基于 Debian,其他用户类比即可
注意教程内容是基于测试版签发写的!正式版本是 2 月 27 日发布。正式版本 3 月 14 日凌晨发布,已进行签发测试。
目前仅支持 DNS 方式(常规都行,如 CloudXNS、DNSpod、Cloudflare 等),暂不支持 Standalone
下文以 CloudXNS 为例。 - 其他 DNS 参考这个文章:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
过程
- 下载相关依赖
apt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y
- 下载 ACME.SH
curl https://get.acme.sh | sh
- 获取 CloudXNS 的 API KEY 和 Secret KEY(注意先解析域名到 cloudXNS, 不赘述)
地址:https://www.cloudxns.net/AccountManage/apimanage.html
API KEY: XXXXXXXXXXX
SECRET KEY:YYYYYYYYYYYY
注意:有问题可将你安装 ACME.SH 的 VPS IP 设置进入白名单!!!!(似乎不设置代表的是全通过,主要是怕你之前配过IP清单)
- 将Cloudxns 的key等信息配置好
export CX_Key="1234"
export CX_Secret="sADDsdasdgdsf"
- 执行签发程序此处以我的域名为例 yangmaodang.org
~/.acme.sh/acme.sh --dns dns_cx --issue -d yangmaodang.org -d *.yangmaodang.org
- 证书获取, 此处以我的域名为例 yangmaodang.org
CSR、KEY、CERT 都在此路径下:
/root/.acme.sh/yangmaodang.org/
- Nginx 配置使用证书
# domain自行替换成自己的域名
server {
server_name xx.yangmaodang.org;
listen 443 http2 ssl;
ssl_certificate /root/.acme.sh/yangmaodang.org/fullchain.cer;
ssl_certificate_key /root/.acme.sh/yangmaodang.org/yangmaodang.org.key;
ssl_trusted_certificate /root/.acme.sh/yangmaodang.org/ca.cer;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:10086;
}
}
关于自动续期
- 该泛域名证书默认是90天有效期
- 在第一次使用 ACME.SH 成功之后,会记录下 App_Key 跟 App_Secret,并且生成一个定时任务,每天凌晨0:00 自动检测过期域名并且自动续期。
- 对这种方式有顾虑的,可以自行删掉用户级的定时任务,并且清理掉~/.acme.sh 文件夹即可