蓝冰血魄干货教程 unraid脚本自签域名证书 自动替换nginx proxy manager自定义证书,支持阿里 腾讯云域名(也可支持其他dns api 查询:https://github.com/acmesh-official/acme.sh/wiki/dnsapi)
注:本人很懒,懒的截图,懒的写出详细步骤,只酌情出些干货教程,脚本。所以使用本教程 需要一点shell脚本和unraid基础知识,纯小白可参考人生观博客其他内容,也可以在人生观群里问,我看到了就会回。
第一步: 在unraid APP 下载 user scripts
第二步:创建新脚本并将以下代码复制粘贴
#!/usr/bin/env sh ##本shell脚本自动识别 NginxProxyManager 自定义ssl证书路径,仅识别最后添加的证书 如有其他需要可根据脚本自行修改。 ##export domains1="自己的域名.com" ##export domains2="'*.自己的域名.com" ## 阿里云域名 登陆key,##代表已备注,本脚本使用腾讯dns解析制作。 ## export dnsname="dns_ali" ## export Ali_Key="自己改key" ## export Ali_Secret="自己改Secret" #-------------------------------------------------------# ## dnspod 域名证书登陆 key export dnsname="dns_dp" export DP_Id="自己的ID" export DP_Key="自己的KEY" export certpath="/mnt/user/appdata/NginxProxyManager/custom_ssl" ##NginxProxyManager 自定义证书文件存放位置,一般不用改 export tempcertpath="/mnt/user/appdata" ##没有安装 NginxProxyManager 存放位置 if [ ! -d $certpath ]; then echo "notfound $certpath" else for dir in $( ls -a $certpath ) do [ -d $dir ] && echo $dir done fi if [ ! -d ~/.acme.sh ]; then echo "downloaded acme" curl https://get.acme.sh | sh echo "Successfully downloaded acme1" if [ ! -f ~/.acme.sh/acme.sh ]; then if curl https://get.acme.sh | sh ; then echo "Successfully downloaded acme2" alias acme.sh=~/.acme.sh/acme.sh ~/.acme.sh/acme.sh --issue --dns $dnsname -d $domains1 -d $domains2 cp -rf ~/.acme.sh/$domains1 $tempcertpath/ if [ ! -d $certpath/n* ]; then ~/.acme.sh/acme.sh --install-cert -d $domains1 --key-file $tempcertpath/privkey.pem --fullchain-file $tempcertpath/fullchain.pem echo "$tempcertpath/$domains1" echo "$tempcertpath/privkey.pem" echo "$tempcertpath/fullchain.pem" else ~/.acme.sh/acme.sh --install-cert -d $domains1 --key-file $certpath/$dir/privkey.pem --fullchain-file $certpath/$dir/fullchain.pem docker restart NginxProxyManager echo "$certpath/$dir/privkey.pem" echo "$certpath/$dir/fullchain.pem" fi else echo "Not downloaded acme,Please Check Network or Url" exit 1 fi else echo "Successfully downloaded acme3" alias acme.sh=~/.acme.sh/acme.sh ~/.acme.sh/acme.sh --issue --dns $dnsname -d $domains1 -d $domains2 cp -rf ~/.acme.sh/$domains1 $tempcertpath/ if [ ! -d $certpath/n* ]; then ~/.acme.sh/acme.sh --install-cert -d $domains1 --key-file $tempcertpath/privkey.pem --fullchain-file $tempcertpath/fullchain.pem echo "$tempcertpath/$domains1" echo "$tempcertpath/privkey.pem" echo "$tempcertpath/fullchain.pem" else ~/.acme.sh/acme.sh --install-cert -d $domains1 --key-file $certpath/$dir/privkey.pem --fullchain-file $certpath/$dir/fullchain.pem docker restart NginxProxyManager echo "$certpath/$dir/privkey.pem" echo "$certpath/$dir/fullchain.pem" fi fi else echo "acme found,updata acme and renew cert" alias acme.sh=~/.acme.sh/acme.sh ~/.acme.sh/acme.sh --upgrade ~/.acme.sh/acme.sh --renew --force -d $domains1 -d $domains2 cp -rf ~/.acme.sh/$domains1 $tempcertpath/ ##chmod 777 +R $tempcertpath/$domains1 if [ ! -d $certpath/n* ]; then ~/.acme.sh/acme.sh --install-cert -d $domains1 --key-file $tempcertpath/privkey.pem --fullchain-file $tempcertpath/fullchain.pem echo "$tempcertpath/$domains1" echo "$tempcertpath/privkey.pem" echo "$tempcertpath/fullchain.pem" else ~/.acme.sh/acme.sh --install-cert -d $domains1 --key-file $certpath/$dir/privkey.pem --fullchain-file $certpath/$dir/fullchain.pem docker restart NginxProxyManager echo "$certpath/$dir/privkey.pem" echo "$certpath/$dir/fullchain.pem" fi fi
第三步:设置 对应脚本 自动执行周期,acme 自签证书有效时间为60天。
所以我们设置为 * * * */2 * 每两个月执行一次。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。