diff --git a/bin/tls.sh b/bin/tls.sh new file mode 100644 index 0000000..0fc3dc5 --- /dev/null +++ b/bin/tls.sh @@ -0,0 +1,63 @@ +#!/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" +}