feat(脚本): 添加更新证书

pull/534/merge
mack-a 2020-09-11 16:36:29 +08:00
parent f5bbf75158
commit c8b7d27083
1 changed files with 128 additions and 22 deletions

View File

@ -373,33 +373,86 @@ installCronTLS(){
# 备份 # 备份
cat << EOF > /etc/v2ray-agent/reloadInstallTLS.sh cat << EOF > /etc/v2ray-agent/reloadInstallTLS.sh
domain=${domain} #!/usr/bin/env bash
eccPath=\`find ~/.acme.sh -name "\${domain}_ecc"|head -1\` echoContent(){
# mkdir -p /etc/v2ray-agent/tls case $1 in
# touch /etc/v2ray-agent/tls/tls.log # 红色
# touch /etc/v2ray-agent/tls/acme.log "red")
if [[ ! -z \${eccPath} ]] echo -e "\033[31m${printN}$2 \033[0m"
;;
# 天蓝色
"skyBlue")
echo -e "\033[1;36m${printN}$2 \033[0m"
;;
# 绿色
"green")
echo -e "\033[32m${printN}$2 \033[0m"
;;
# 白色
"white")
echo -e "\033[37m${printN}$2 \033[0m"
;;
"magenta")
echo -e "\033[31m${printN}$2 \033[0m"
;;
"skyBlue")
echo -e "\033[36m${printN}$2 \033[0m"
;;
# 黄色
"yellow")
echo -e "\033[33m${printN}$2 \033[0m"
;;
esac
}
echoContent skyBlue "\n进度 1/1 : 更新证书"
if [[ -d "/etc/v2ray-agent" ]] && [[ -d "/etc/v2ray-agent/v2ray" ]] && [[ -d "/etc/v2ray-agent/tls" ]] && [[ -d "/etc/v2ray-agent" ]] && [[ -d "/etc/v2ray-agent/v2ray" ]] && [[ -f "/etc/v2ray-agent/v2ray/config.json" ]] && [[ -d "/root/.acme.sh" ]]
then
tcp=`cat /etc/v2ray-agent/v2ray/config.json|jq .inbounds[0]`
host=`echo ${tcp}|jq .streamSettings.tlsSettings.certificates[0].certificateFile|awk -F '[t][l][s][/]' '{print $2}'|awk -F '["]' '{print $1}'|awk -F '[.][c][r][t]' '{print $1}'`
if [[ -d "/root/.acme.sh/${host}_ecc" ]] && [[ -f "/root/.acme.sh/${host}_ecc/${host}.key" ]] && [[ -f "/root/.acme.sh/${host}_ecc/${host}.cer" ]]
then
modifyTime=`stat /root/.acme.sh/${host}_ecc/${host}.key|sed -n '6,6p'|awk '{print $2" "$3" "$4" "$5}'`
modifyTime=`date +%s -d "${modifyTime}"`
currentTime=`date +%s`
# currentTime=`date +%s -d "2021-09-04 02:15:56.438105732 +0000"`
# currentTIme=1609459200
stampDiff=`expr ${currentTime} - ${modifyTime}`
days=`expr ${stampDiff} / 86400`
remainingDays=`expr 90 - ${days}`
tlsStatus=${remainingDays}
if [[ ${remainingDays} -le 0 ]]
then then
modifyTime=\`stat \${eccPath}/\${domain}.key|sed -n '6,6p'|awk '{print \$2" "\$3" "\$4" "\$5}'\` tlsStatus="已过期"
modifyTime=\`date +%s -d "\${modifyTime}"\` fi
currentTime=\`date +%s\` echoContent skyBlue " ---> 证书生成日期:"`date -d @${modifyTime} +"%F %H:%M:%S"`
stampDiff=\`expr \${currentTime} - \${modifyTime}\` echoContent skyBlue " ---> 证书生成天数:"${days}
minutes=\`expr \${stampDiff} / 60\` echoContent skyBlue " ---> 证书剩余天数:"${tlsStatus}
status="正常" if [[ ${remainingDays} -le 1 ]]
reloadTime="暂无" then
if [[ ! -z \${modifyTime} ]] && [[ ! -z \${currentTime} ]] && [[ ! -z \${stampDiff} ]] && [[ ! -z \${minutes} ]] && [[ \${minutes} -lt '120' ]] echoContent yellow " ---> 重新生成证书"
if [[ `ps -ef|grep -v grep|grep nginx` ]]
then then
nginx -s stop nginx -s stop
~/.acme.sh/acme.sh --installcert -d \${domain} --fullchainpath /etc/v2ray-agent/tls/\${domain}.crt --keypath /etc/v2ray-agent/tls/\${domain}.key --ecc >> /etc/v2ray-agent/tls/acme.log
nginx
reloadTime=\`date -d @\${currentTime} +"%F %H:%M:%S"\`
fi fi
echo "域名:\${domain}modifyTime:"\`date -d @\${modifyTime} +"%F %H:%M:%S"\`,"检查时间:"\`date -d @\${currentTime} +"%F %H:%M:%S"\`,上次生成证书的时:\`expr \${minutes} / 1440\`"天前","证书状态:"\${status},"重新生成日期:"\${reloadTime} >> /etc/v2ray-agent/tls/tls.log sudo ~/.acme.sh/acme.sh --installcert -d ${host} --fullchainpath /etc/v2ray-agent/tls/${host}.crt --keypath /etc/v2ray-agent/tls/${host}.key --ecc >> /etc/v2ray-agent/tls/acme.log
nginx
if [[ `ps -ef|grep -v grep|grep nginx` ]]
then
echoContent green " ---> nginx启动成功"
else
echoContent red " ---> nginx启动失败请检查[/etc/v2ray-agent/tls/acme.log]"
fi
else else
echo '无法找到证书路径' >> /etc/v2ray-agent/tls/tls.log echoContent green " ---> 证书有效"
fi fi
else
echoContent red " ---> 无法找到相应路径,请使用脚本重新安装"
fi
else
echoContent red " ---> 无法找到相应路径,请使用脚本重新安装"
fi
EOF EOF
if [[ ! -z `crontab -l|grep -v grep|grep 'reloadInstallTLS'` ]] if [[ ! -z `crontab -l|grep -v grep|grep 'reloadInstallTLS'` ]]
then then
echoContent green " ---> 添加定时维护证书成功" echoContent green " ---> 添加定时维护证书成功"
@ -410,6 +463,57 @@ EOF
echoContent green " ---> 添加定时维护证书成功" echoContent green " ---> 添加定时维护证书成功"
fi fi
} }
# 更新证书
renewalTLS(){
echoContent skyBlue "\n进度 1/1 : 更新证书"
if [[ -d "/etc/v2ray-agent" ]] && [[ -d "/etc/v2ray-agent/v2ray" ]] && [[ -d "/etc/v2ray-agent/tls" ]] && [[ -d "/etc/v2ray-agent" ]] && [[ -d "/etc/v2ray-agent/v2ray" ]] && [[ -f "/etc/v2ray-agent/v2ray/config.json" ]] && [[ -d "/root/.acme.sh" ]]
then
tcp=`cat /etc/v2ray-agent/v2ray/config.json|jq .inbounds[0]`
host=`echo ${tcp}|jq .streamSettings.tlsSettings.certificates[0].certificateFile|awk -F '[t][l][s][/]' '{print $2}'|awk -F '["]' '{print $1}'|awk -F '[.][c][r][t]' '{print $1}'`
if [[ -d "/root/.acme.sh/${host}_ecc" ]] && [[ -f "/root/.acme.sh/${host}_ecc/${host}.key" ]] && [[ -f "/root/.acme.sh/${host}_ecc/${host}.cer" ]]
then
modifyTime=`stat /root/.acme.sh/${host}_ecc/${host}.key|sed -n '6,6p'|awk '{print $2" "$3" "$4" "$5}'`
modifyTime=`date +%s -d "${modifyTime}"`
currentTime=`date +%s`
# currentTime=`date +%s -d "2021-09-04 02:15:56.438105732 +0000"`
# currentTIme=1609459200
stampDiff=`expr ${currentTime} - ${modifyTime}`
days=`expr ${stampDiff} / 86400`
remainingDays=`expr 90 - ${days}`
tlsStatus=${remainingDays}
if [[ ${remainingDays} -le 0 ]]
then
tlsStatus="已过期"
fi
echoContent skyBlue " ---> 证书生成日期:"`date -d @${modifyTime} +"%F %H:%M:%S"`
echoContent skyBlue " ---> 证书生成天数:"${days}
echoContent skyBlue " ---> 证书剩余天数:"${tlsStatus}
if [[ ${remainingDays} -le 1 ]]
then
echoContent yellow " ---> 重新生成证书"
if [[ `ps -ef|grep -v grep|grep nginx` ]]
then
nginx -s stop
fi
sudo ~/.acme.sh/acme.sh --installcert -d ${host} --fullchainpath /etc/v2ray-agent/tls/${host}.crt --keypath /etc/v2ray-agent/tls/${host}.key --ecc >> /etc/v2ray-agent/tls/acme.log
nginx
if [[ `ps -ef|grep -v grep|grep nginx` ]]
then
echoContent green " ---> nginx启动成功"
else
echoContent red " ---> nginx启动失败请检查[/etc/v2ray-agent/tls/acme.log]"
fi
else
echoContent green " ---> 证书有效"
fi
else
echoContent red " ---> 无法找到相应路径,请使用脚本重新安装"
fi
else
echoContent red " ---> 无法找到相应路径,请使用脚本重新安装"
fi
}
# 安装V2Ray # 安装V2Ray
installV2Ray(){ installV2Ray(){
# ls -F /usr/bin/v2ray/|grep "v2ray" # ls -F /usr/bin/v2ray/|grep "v2ray"
@ -1400,14 +1504,13 @@ menu(){
echoContent green "当前版本v2.0.3" echoContent green "当前版本v2.0.3"
echoContent red "==============================================================" echoContent red "=============================================================="
echoContent yellow "1.(VLESS+TCP+TLS/VMess+TCP+TLS/VMess+WS+TLS/VLESS+WS+TLS)+伪装博客 四合一共存脚本[Cloudflare云朵需为灰色]" echoContent yellow "1.(VLESS+TCP+TLS/VMess+TCP+TLS/VMess+WS+TLS/VLESS+WS+TLS)+伪装博客 四合一共存脚本[Cloudflare云朵需为灰色]"
# echoContent yellow "2.V2Ray+TCP+TLS"
echoContent red "==============================================================" echoContent red "=============================================================="
echoContent yellow "4.升级V2Ray" echoContent yellow "4.升级V2Ray"
echoContent yellow "5.自动排错" echoContent yellow "5.自动排错"
echoContent yellow "6.账号查看" echoContent yellow "6.账号查看"
echoContent yellow "7.安装BBR" echoContent yellow "7.安装BBR"
echoContent yellow "8.升级脚本" echoContent yellow "8.升级脚本"
echoContent yellow "9.更新证书[todo]" echoContent yellow "9.更新证书"
echoContent yellow "10.卸载脚本" echoContent yellow "10.卸载脚本"
echoContent red "==============================================================" echoContent red "=============================================================="
automaticUpgrade automaticUpgrade
@ -1431,6 +1534,9 @@ menu(){
8) 8)
updateV2RayAgent 1 updateV2RayAgent 1
;; ;;
9)
renewalTLS 1
;;
10) 10)
unInstall unInstall
;; ;;