#!/bin/bash create_acme_tls_config() { local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local CONFIG_DIR="$SCRIPT_DIR/../config" local CONFIG_FILE="$CONFIG_DIR/config.json" cp "$CONFIG_DIR/template/tuic/tuic_acme_tls_config.json" "$CONFIG_FILE" # 设置端口 update_port # 设置密码 update_password # 设置UUID update_uuid # 获取邮箱 local USER_EMAIL read -p "请输入你的邮箱(可留空): " USER_EMAIL if [[ -z "$USER_EMAIL" ]]; then USER_EMAIL="example@example.com" fi # 获取域名 local USER_DOMAIN read -p "请输入你的域名 (例如: example.com): " USER_DOMAIN while [[ -z "$USER_DOMAIN" ]]; do echo "[错误] 域名不能为空" read -p "请输入你的域名: " USER_DOMAIN done # 获取 Cloudflare API Token local CLOUDFLARE_TOKEN read -p "请输入你的 Cloudflare API Token: " CLOUDFLARE_TOKEN while [[ -z "$CLOUDFLARE_TOKEN" ]]; do echo "[错误] Cloudflare API Token 不能为空" read -p "请输入你的 Cloudflare API Token: " CLOUDFLARE_TOKEN done sed -i "s/你的邮箱/$USER_EMAIL/g" "$CONFIG_FILE" sed -i "s/你的域名/$USER_DOMAIN/g" "$CONFIG_FILE" sed -i "s/你的Cloudflare_API_Token/$CLOUDFLARE_TOKEN/g" "$CONFIG_FILE" green "成功创建配置" } create_self_tls_config() { local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" cp "$SCRIPT_DIR/../config/template/tuic/tuic_self_tls_config.json" "$CONFIG_FILE" # 设置端口 update_port # 设置密码 update_password # 设置UUID update_uuid # 生成自签名证书和设置域名 local DOMAIN="bing.com" create_self_tls "$DOMAIN" sed -i "s/你的域名/$DOMAIN/g" "$CONFIG_FILE" green "成功创建配置" } create_config(){ local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" # 如果配置文件已存在,提示用户是否重新生成 if [ -e "$CONFIG_FILE" ]; then local REGENERATE read -p "检测到配置已存在,是否重新生成配置?(y/n): " REGENERATE if [ "$REGENERATE" != "y" ] && [ "$REGENERATE" != "Y" ]; then echo "取消重新生成配置." return fi fi echo "请选择配置类型:" echo "1. 自签名证书配置" echo "2. tls证书配置" local CHOICE read -p "输入您的选择: " CHOICE case $CHOICE in 1) echo "重置为自签名证书配置..." create_self_tls_config ;; 2) echo "重置为acme tls证书配置..." create_acme_tls_config ;; *) echo "无效的选择, 请重新选择." ;; esac }