#!/bin/bash # 生成自签名证书 create_self_tls_file() { local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local KEY_DIR="$SCRIPT_DIR/../tls/self-tls" # 自签tls证书文件夹 # 创建存放证书的目录 mkdir -p "$KEY_DIR" # 生成自签名证书文件 local DOMAIN="${1:-bing.com}" # 域名,默认为bing.com openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) \ -keyout "$KEY_DIR/server.key" \ -out "$KEY_DIR/server.crt" \ -subj "/CN=$DOMAIN" \ -days 36500 } update_self_tls(){ local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local CONFIG_DIR=$(readlink -f "$SCRIPT_DIR/../config") local CONFIG_FILE="$CONFIG_DIR/config.json" # 生成自签名证书, 设置域名 local DOMAIN="${1:-bing.com}" # 域名,默认为bing.com create_self_tls "$DOMAIN" sed -i "s/你的域名/$DOMAIN/g" "$CONFIG_FILE" } update_acme_tls(){ local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local CONFIG_DIR=$(readlink -f "$SCRIPT_DIR/../config") local CONFIG_FILE="$CONFIG_DIR/config.json" # 获取邮箱 local USER_EMAIL read -p "请输入你的邮箱: " USER_EMAIL if [[ -z "$USER_EMAIL" ]]; then echo "[错误] 域名不能为空" read -p "请输入你的邮箱: " USER_EMAIL 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" }