You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用GoDaddy续签的SSL证书自动更新Kubernetes TLS Secret?

实现GoDaddy托管SSL证书同步更新Kubernetes TLS Secret的方案

可行方案:自定义脚本 + CronJob

由于Cert-Manager原生不支持GoDaddy,最直接的实现方式是通过定期调用GoDaddy API拉取最新证书,再同步到Kubernetes TLS Secret,具体步骤如下:

1. 准备GoDaddy API凭证

在GoDaddy开发者平台创建生产环境的API密钥(需开启对应域名的证书管理权限),然后将密钥存入Kubernetes Secret:

kubectl create secret generic godaddy-api-creds \
  --from-literal=api-key=你的GoDaddy_API_KEY \
  --from-literal=api-secret=你的GoDaddy_API_SECRET \
  -n 目标命名空间

2. 编写证书同步脚本

创建Shell脚本(比如sync-godaddy-cert.sh),实现拉取证书、更新Secret的逻辑:

#!/bin/bash

# 配置参数
DOMAIN="your-domain.com"
TARGET_SECRET="wildcard-tls-secret"
NAMESPACE="default"

# 读取API凭证
API_KEY=$(kubectl get secret godaddy-api-creds -n $NAMESPACE -o jsonpath='{.data.api-key}' | base64 -d)
API_SECRET=$(kubectl get secret godaddy-api-creds -n $NAMESPACE -o jsonpath='{.data.api-secret}' | base64 -d)

# 调用GoDaddy API获取最新证书
CERT_DATA=$(curl -s -u "$API_KEY:$API_SECRET" \
  "https://api.godaddy.com/v1/domains/$DOMAIN/certificates")

# 提取最新证书和私钥(需根据API返回结构调整jq逻辑)
LATEST_CERT=$(echo $CERT_DATA | jq -r '.[0].certificate')
LATEST_KEY=$(echo $CERT_DATA | jq -r '.[0].privateKey')

# 更新TLS Secret
kubectl create secret tls $TARGET_SECRET \
  --cert=<(echo "$LATEST_CERT") \
  --key=<(echo "$LATEST_KEY") \
  -n $NAMESPACE \
  --dry-run=client -o yaml | kubectl apply -f -

将脚本存入ConfigMap:

kubectl create configmap godaddy-sync-script --from-file=sync-godaddy-cert.sh -n 目标命名空间

3. 用CronJob实现定期执行

创建CronJob资源,设置在证书到期前(比如提前10天)自动执行同步:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: godaddy-cert-sync
  namespace: default
spec:
  schedule: "0 0 20 */11 *"  # 每11个月的20号零点执行(适配12个月有效期的证书)
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cert-sync
            image: alpine/k8s:1.28.0  # 内置curl、jq、kubectl的镜像
            command: ["/bin/sh", "-c"]
            args: ["/scripts/sync-godaddy-cert.sh"]
            volumeMounts:
            - name: script-volume
              mountPath: /scripts
          volumes:
          - name: script-volume
            configMap:
              name: godaddy-sync-script
              defaultMode: 0755
          restartPolicy: OnFailure

关键注意事项

  • 给CronJob绑定的ServiceAccount配置update secret的RBAC权限,避免权限不足
  • 手动执行脚本测试API调用和Secret更新逻辑,确保格式正确
  • 可在脚本末尾添加告警逻辑(比如调用企业微信/钉钉接口),同步失败时及时通知

社区现成实现情况

目前没有官方维护的集成工具,但GitHub上有不少开源的第三方脚本(搜索关键词godaddy kubernetes secret sync),大多基于上述思路实现,你可以直接参考或修改后使用。

内容的提问来源于stack exchange,提问作者Devel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:01:00