apisix网关 批量初使化域名证书,批量定期更新证书

#!/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

你可能感兴趣的:(golang,apisix)