Study_Script/SHELL/linux_1panel.sh

74 lines
1.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 定义用户名和密码
USERNAME="****"
PASSWORD="****"
# 安全入口 EntranceCodeBase64
ENTRANCE_CODE="******"
# 1Panel API 地址
LOGIN_URL="http://*******/api/v1/auth/login"
UPLOAD_URL="http://********/api/v1/websites/ssl/upload"
# 定义证书相关信息
PRIVATE_KEY_PATH="/data2/SSL_SAVE/ovofish/privkey.pem"
CERTIFICATE_PATH="/data2/SSL_SAVE/ovofish/fullchain.pem"
SSL_ID=3
DESCRIPTION="sync from certd:tx4"
# 构建登录请求的 JSON 数据
LOGIN_DATA=$(cat <<EOF
{
"name": "$USERNAME",
"password": "$PASSWORD",
"language":"zh",
"authMethod": "jwt"
}
EOF
)
# 使用 curl 发送登录请求
RESPONSE=$(curl -s -X POST "$LOGIN_URL" \
-H "Content-Type: application/json" \
-H "EntranceCode: $ENTRANCE_CODE" \
-d "$LOGIN_DATA")
# 解析返回的 token
TOKEN=$(echo $RESPONSE | grep -Po '(?<="token":")[^"]*')
# 检查是否登录成功
if [ -n "$TOKEN" ]; then
echo "登录成功token: $TOKEN"
# 读取私钥和证书内容
PRIVATE_KEY_CONTENT=$(cat "$PRIVATE_KEY_PATH" | awk '{printf "%s\\n", $0}' | sed 's/\\n$//')
CERTIFICATE_CONTENT=$(cat "$CERTIFICATE_PATH" | awk '{printf "%s\\n", $0}' | sed 's/\\n$//')
printf "私钥内容: $PRIVATE_KEY_CONTENT"
printf "证书内容: $CERTIFICATE_CONTENT"
# 构建上传证书的请求数据
UPLOAD_DATA=$(cat <<EOF
{
"privateKey": "$PRIVATE_KEY_CONTENT",
"certificate": "$CERTIFICATE_CONTENT",
"privateKeyPath": "",
"certificatePath": "",
"type": "paste",
"sslID": $SSL_ID,
"description": "$DESCRIPTION"
}
EOF
)
# 发送证书上传请求
UPLOAD_RESPONSE=$(curl -s -X POST "$UPLOAD_URL" \
-H "PanelAuthorization: $TOKEN" \
-H "Content-Type: application/json" \
-d "$UPLOAD_DATA")
# 输出上传结果
echo "$UPLOAD_DATA"
echo "证书上传响应: $UPLOAD_RESPONSE"
else
echo "登录失败,请检查用户名或密码"
echo "失败响应: $RESPONSE"
fi