refactor: 代码审查反馈 - UUID生成简化 + base64url提取为函数
Agent-Logs-Url: https://github.com/qinfendebingshuo/guanghulab/sessions/30c8f4ac-a9ab-450c-85ce-ac2c40ffc705 Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
This commit is contained in:
parent
449f964686
commit
b7ef6e7240
|
|
@ -18,6 +18,11 @@
|
||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
# 注意: 不使用 set -e,手动处理错误以确保密钥生成的健壮性
|
# 注意: 不使用 set -e,手动处理错误以确保密钥生成的健壮性
|
||||||
|
|
||||||
|
# 工具函数: 将二进制数据转为base64url编码
|
||||||
|
to_base64url() {
|
||||||
|
base64 | tr '+/' '-_' | tr -d '='
|
||||||
|
}
|
||||||
|
|
||||||
echo "════════════════════════════════════════"
|
echo "════════════════════════════════════════"
|
||||||
echo "🔑 铸渊专线 · 密钥生成"
|
echo "🔑 铸渊专线 · 密钥生成"
|
||||||
echo "════════════════════════════════════════"
|
echo "════════════════════════════════════════"
|
||||||
|
|
@ -26,10 +31,7 @@ echo ""
|
||||||
HAS_ERROR=0
|
HAS_ERROR=0
|
||||||
|
|
||||||
# ── 生成UUID ─────────────────────────────────
|
# ── 生成UUID ─────────────────────────────────
|
||||||
UUID=$(xray uuid 2>/dev/null || cat /proc/sys/kernel/random/uuid || true)
|
UUID=$(xray uuid 2>/dev/null || cat /proc/sys/kernel/random/uuid 2>/dev/null || openssl rand -hex 16 | sed 's/\(.\{8\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.\{12\}\)/\1-\2-\3-\4-\5/')
|
||||||
if [ -z "$UUID" ]; then
|
|
||||||
UUID=$(cat /proc/sys/kernel/random/uuid 2>/dev/null || openssl rand -hex 16 | sed 's/\(.\{8\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.\{12\}\)/\1-\2-\3-\4-\5/')
|
|
||||||
fi
|
|
||||||
echo "ZY_PROXY_UUID=$UUID"
|
echo "ZY_PROXY_UUID=$UUID"
|
||||||
|
|
||||||
# ── 生成Reality X25519密钥对 ──────────────────
|
# ── 生成Reality X25519密钥对 ──────────────────
|
||||||
|
|
@ -95,9 +97,9 @@ if [ -z "$PRIVATE_KEY" ] && command -v openssl &>/dev/null; then
|
||||||
if openssl genpkey -algorithm X25519 -out "$TMPKEY" 2>/dev/null; then
|
if openssl genpkey -algorithm X25519 -out "$TMPKEY" 2>/dev/null; then
|
||||||
# 从DER格式提取原始32字节密钥,转为base64url (43字符)
|
# 从DER格式提取原始32字节密钥,转为base64url (43字符)
|
||||||
PRIVATE_KEY=$(openssl pkey -in "$TMPKEY" -outform DER 2>/dev/null \
|
PRIVATE_KEY=$(openssl pkey -in "$TMPKEY" -outform DER 2>/dev/null \
|
||||||
| tail -c 32 | base64 | tr '+/' '-_' | tr -d '=') || true
|
| tail -c 32 | to_base64url) || true
|
||||||
PUBLIC_KEY=$(openssl pkey -in "$TMPKEY" -pubout -outform DER 2>/dev/null \
|
PUBLIC_KEY=$(openssl pkey -in "$TMPKEY" -pubout -outform DER 2>/dev/null \
|
||||||
| tail -c 32 | base64 | tr '+/' '-_' | tr -d '=') || true
|
| tail -c 32 | to_base64url) || true
|
||||||
fi
|
fi
|
||||||
rm -f "$TMPKEY"
|
rm -f "$TMPKEY"
|
||||||
|
|
||||||
|
|
@ -115,7 +117,7 @@ fi
|
||||||
if [ -z "$PRIVATE_KEY" ]; then
|
if [ -z "$PRIVATE_KEY" ]; then
|
||||||
echo " ⚠️ 所有X25519生成方法均失败,使用随机占位密钥"
|
echo " ⚠️ 所有X25519生成方法均失败,使用随机占位密钥"
|
||||||
echo " ⚠️ 请在服务器上手动运行: xray x25519"
|
echo " ⚠️ 请在服务器上手动运行: xray x25519"
|
||||||
PRIVATE_KEY=$(openssl rand -base64 32 | tr '+/' '-_' | tr -d '=' | head -c 43)
|
PRIVATE_KEY=$(openssl rand 32 | to_base64url | head -c 43)
|
||||||
PUBLIC_KEY="PLACEHOLDER_REGENERATE_WITH_XRAY_X25519"
|
PUBLIC_KEY="PLACEHOLDER_REGENERATE_WITH_XRAY_X25519"
|
||||||
HAS_ERROR=1
|
HAS_ERROR=1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue