蓝冰血魄干货教程 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 *   每两个月执行一次。

发表回复

后才能评论