#!/bin/bash # 检查是否以 root 权限运行 if [ "$(id -u)" -ne 0 ]; then echo "请使用 root 权限运行此脚本。" exit 1 fi # 检查是否安装了 openssl,如果没有则自动安装 if ! command -v openssl &> /dev/null; then echo "未检测到 openssl,正在安装..." if command -v apt &> /dev/null; then apt update && apt install -y openssl elif command -v yum &> /dev/null; then yum install -y openssl else echo "未检测到支持的包管理器 (apt 或 yum),请手动安装 openssl 后重试。" exit 1 fi fi # 检查是否提供域名 if [ -z "$1" ]; then echo "用法: $0 <域名>" exit 1 fi DOMAIN="$1" CERT_DIR="/etc/V2bX" FULLCHAIN="${CERT_DIR}/fullchain.cer" KEY="${CERT_DIR}/cert.key" # 创建存储目录(如果不存在) mkdir -p "$CERT_DIR" # 生成自签名证书 openssl req -x509 -newkey rsa:2048 -keyout "$KEY" -out "$FULLCHAIN" -days 365 -nodes -subj "/CN=$DOMAIN" # 检查证书生成是否成功 if [ $? -eq 0 ]; then echo "证书生成成功!" echo "证书路径: $FULLCHAIN" echo "私钥路径: $KEY" else echo "证书生成失败!请检查 openssl 是否已安装或查看错误日志。" exit 1 fi