32 lines
926 B
Bash
32 lines
926 B
Bash
#!/bin/bash
|
|
|
|
# 导入依赖脚本文件
|
|
for f in $(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/utils/*.sh; do
|
|
source "$f"
|
|
done
|
|
|
|
|
|
# 生成自签名证书
|
|
gen_self_tls() {
|
|
local domain="${1:-bing.com}"
|
|
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
|
|
local key_dir="$script_dir/../tls/self-tls"
|
|
local config_file="$script_dir/../config/config.json"
|
|
|
|
# 创建存放证书的目录
|
|
mkdir -p "$key_dir"
|
|
|
|
# 生成自签名证书
|
|
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
|
|
|
|
# 更新config.json文件中的域名信息
|
|
modify_json_file "$config_file" "inbounds[0].tls.server_name" "$domain"
|
|
}
|
|
|
|
# 调用函数,传入第一个参数作为域名
|
|
gen_self_tls "${1:-bing.com}"
|