From 15373c2ab7b680b67a0f8b5895c5a3166ef500f5 Mon Sep 17 00:00:00 2001 From: Kenny Yang Date: Tue, 3 Jun 2025 23:20:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=AF=81=E4=B9=A6=E5=92=8C=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8F=8D=E5=90=91=E4=BB=A3=E7=90=86=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加新的bash脚本用于自动化以下操作: 1. 通过acme.sh申请Let's Encrypt证书 2. 配置Cloudflare DNS验证 3. 设置证书自动续期 4. 生成并配置Nginx反向代理 脚本包含用户交互输入域名、代理IP和端口的功能,并自动完成证书申请和Nginx配置。 --- local/add_new_app.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 local/add_new_app.sh diff --git a/local/add_new_app.sh b/local/add_new_app.sh new file mode 100644 index 0000000..a7559d1 --- /dev/null +++ b/local/add_new_app.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +read -r -p "请输入域名: " domain_name +read -r -p "请输入代理IP地址: " ip_address +read -r -p "请输入代理端口: " port + +# 设置Cloudflare API环境变量 +export CF_Token="wCZ-IdP8zY-Gdf5e3ZMGkeys_DeSiBQq2z0_SN2Y" # 替换为刚生成的API令牌 +export CF_Account_ID="ybwpcl@hotmail.com" # 在Cloudflare控制台首页右侧获取 + +# 安装acme.sh(必须先安装) +echo "正在安装 acme.sh 脚本..." +curl https://get.acme.sh | sh +source ~/.bashrc # 刷新环境变量 + +# 注册账户(只需执行一次) +echo "正在注册账户..." +~/.acme.sh/acme.sh --register-account -m admin@digitaluniverse.pro + +# 使用DNS验证申请证书(关键步骤) +echo "正在使用DNS验证签发证书..." +~/.acme.sh/acme.sh --issue --dns dns_cf -d "$domain_name" --keylength ec-256 # ECC证书更高效 + +# 安装证书到指定位置 +echo "正在安装证书..." +~/.acme.sh/acme.sh --installcert -d "$domain_name" --key-file /home/web/certs/"${domain_name}"_key.pem --fullchain-file /home/web/certs/"${domain_name}"_cert.pem +echo "证书签发安装操作完成。" + +# 关键改进2:安装自动续期任务 +echo "安装自动续期任务..." +~/.acme.sh/acme.sh --install-cronjob + +# 验证定时任务 +echo "当前定时任务:" +crontab -l | grep acme + +echo "配置反向代理配置文件..." +wget -O /home/web/conf.d/"$domain_name".conf https://raw.githubusercontent.com/kejilion/nginx/main/reverse-proxy.conf +sed -i "s/yuming.com/$domain_name/g" /home/web/conf.d/"$domain_name".conf +sed -i "s/0.0.0.0/$ip_address/g" /home/web/conf.d/"$domain_name".conf +sed -i "s/0000/$port/g" /home/web/conf.d/"$domain_name".conf +echo "配置完成"