UNRAID下使用脚本全利用acme更新NginxProxyManager中的证书

技术·学习 · 03-13 · 483 人浏览

这里本人的nas的域名解析是cloudfare,所以大部分的工作都是基于cloudfare去做的,这里先准备acme的必要的东西就是CF_Key。
cloudfareAPI中申请CF_Key
2024-03-13T08:15:40.png
然后在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

2024-03-13T08:23:42.png

部分域名商如下
域名服务商变量- -dns简写
CloudFlareCF_Key
CF_Email
dns_cf
DNSPod.cnDP_Id
DP_Key
dns_dp
CloudXNS.comCX_Key
CX_Secret
dns_cx
GoDaddy.comGD_Key
GD_Secret
dns_gd
LuaDNSLUA_Key
LUA_Email
dns_lua
DNSMadeEasyCX_Key
CX_Secret
dns_me
Amazon Route53AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
dns_aws
LinodeLINODE_API_KEYdns_linode
FreeDNS账号密码
FREEDNS_User
FREEDNS_Password
dns_freedns
DigitalOceanDO_API_KEYdns_dgon
NS1.comNS1_Keydns_nsone
DNSPod.comDPI_Id
DPI_Key
dns_dpi

其他域名解析商参考:
https://github.com/acmesh-official/acme.sh/wiki/dnsapi

acme UNRAID
Theme Jasmine by Kent Liao