51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# 设置 APISIX Webroot 路由脚本
|
|
# 用于 Let's Encrypt HTTP-01 验证
|
|
|
|
set -e
|
|
|
|
APISIX_ADMIN_URL="${APISIX_ADMIN_URL:-http://localhost:9180}"
|
|
APISIX_ADMIN_KEY="${APISIX_ADMIN_KEY:-8206e6e42b6b53243c52a767cc633137}"
|
|
WEBROOT_PATH="${WEBROOT_PATH:-/var/www/certbot}"
|
|
|
|
echo "配置 APISIX Webroot 路由用于 Let's Encrypt 验证..."
|
|
|
|
# 创建 webroot 路由配置
|
|
ROUTE_CONFIG=$(cat <<EOF
|
|
{
|
|
"uri": "/.well-known/acme-challenge/*",
|
|
"name": "certbot-webroot",
|
|
"plugins": {
|
|
"file-logger": {
|
|
"path": "/var/log/apisix/certbot-access.log"
|
|
}
|
|
},
|
|
"upstream": {
|
|
"type": "roundrobin",
|
|
"nodes": {
|
|
"127.0.0.1:9080": 1
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
)
|
|
|
|
# 注意:这个路由需要配合 Nginx 或其他静态文件服务器
|
|
# 或者使用 APISIX 的 serverless 插件直接返回文件内容
|
|
|
|
echo "Webroot 路由配置:"
|
|
echo "$ROUTE_CONFIG" | jq .
|
|
|
|
echo ""
|
|
echo "请手动在 APISIX 中创建此路由,或使用以下命令:"
|
|
echo ""
|
|
echo "curl -X PUT '$APISIX_ADMIN_URL/apisix/admin/routes/certbot-webroot' \\"
|
|
echo " -H 'X-API-KEY: $APISIX_ADMIN_KEY' \\"
|
|
echo " -H 'Content-Type: application/json' \\"
|
|
echo " -d '$ROUTE_CONFIG'"
|
|
echo ""
|
|
echo "或者配置 Nginx 直接服务静态文件:"
|
|
echo " location /.well-known/acme-challenge/ {"
|
|
echo " root $WEBROOT_PATH;"
|
|
echo " }"
|