#!/bin/bash
# 设置 API 密钥
API_KEY="xxx"
# 遍历 /etc/nginx/ssl 下的所有子目录
for dir in /etc/nginx/ssl/*/; do
# 获取目录名作为 SNI
sni=$(basename "$dir")
# 构建证书和密钥的文件路径
cert_path="${dir}xx.cer"
key_path="${dir}xx.key"
# 发送 curl 请求更新 SSL 证书
curl http://127.0.0.1:9180/apisix/admin/ssls \
-H "X-API-KEY: $API_KEY" -X POST -d '
{
"cert": "'"$(cat "$cert_path")"'",
"key": "'"$(cat "$key_path")"'",
"snis":["'"$sni"'"]
}'
done
#!/bin/bash
API_KEY="xxx"
ssl_dir="/etc/nginx/ssl/"
# 获取原始数据
response=$(curl -s -H "X-API-KEY: ${API_KEY}" http://127.0.0.1:9180/apisix/admin/ssls)
#发送 curl 请求更新 SSL 证书
echo $response | jq -c '.list[]' | while read i; do
id=$(echo $i | jq -r '.value.id')
sni=$(echo $i | jq -r '.value.snis[0]')
# 构建证书和密钥的文件路径
cert_path="${ssl_dir}${sni}/xx.cer"
key_path="${ssl_dir}${sni}/xx.key"
# 发送 curl 请求更新 SSL 证书
curl http://127.0.0.1:9180/apisix/admin/ssls/$id \
-H "X-API-KEY: $API_KEY" -X PUT -d '
{
"cert": "'"$(cat "$cert_path")"'",
"key": "'"$(cat "$key_path")"'",
"snis":["'"$sni"'"]
}'
done