这里本人的nas的域名解析是cloudfare,所以大部分的工作都是基于cloudfare去做的,这里先准备acme的必要的东西就是CF_Key。
cloudfareAPI中申请CF_Key
然后在UNRAID的User Utilities插件中添加脚本如下:
#!/bin/bash
docker run --rm -itd -v /mnt/user/appdata/acme:/acme.sh -e CF_Key="********" -e CF_Email="xxxxx@xx.com" --net=host --entrypoint /bin/sh --name=acme.sh neilpang/acme.sh;
# 更改为 letsencrypt 申请证书
docker exec acme.sh --set-default-ca --server letsencrypt
docker exec acme.sh --issue -d domain.com -d *.domain.com --dns dns_cf --force;
docker exec acme.sh --install-cert -d domain.com --key-file /acme.sh/privkey.pem --fullchain-file /acme.sh/fullchain.pem;
cp -rf /mnt/user/appdata/acme/*.pem /mnt/user/appdata/Nginx-Proxy-Manager-Official/data/custom_ssl/npm-1/;
docker restart NginxProxyManager
脚本关键说明docker exec acme.sh --issue -d abc.com -d *.abc.com --dns dns_cf --force;
其中--dns dns_cf
见下面表格,是域名服务商简写。
第一次,需要在NginxProxyManager中导入一次custom证书,否则没有子目录npm-1
部分域名商如下:
域名服务商 | 变量 | - -dns简写 |
---|---|---|
CloudFlare | CF_Key CF_Email | dns_cf |
DNSPod.cn | DP_Id DP_Key | dns_dp |
CloudXNS.com | CX_Key CX_Secret | dns_cx |
GoDaddy.com | GD_Key GD_Secret | dns_gd |
LuaDNS | LUA_Key LUA_Email | dns_lua |
DNSMadeEasy | CX_Key CX_Secret | dns_me |
Amazon Route53 | AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY | dns_aws |
Linode | LINODE_API_KEY | dns_linode |
FreeDNS | 账号密码 FREEDNS_User FREEDNS_Password | dns_freedns |
DigitalOcean | DO_API_KEY | dns_dgon |
NS1.com | NS1_Key | dns_nsone |
DNSPod.com | DPI_Id DPI_Key | dns_dpi |
其他域名解析商参考:
https://github.com/acmesh-official/acme.sh/wiki/dnsapi