手动轮替证书

选择文档版本:

默认情况下,AlloyDB Omni Kubernetes 操作器使用 cert-manager 为每个数据库集群预配一组 TLS 证书。除了数据库服务器证书之外,该操作器还会为控制平面组件创建证书,以保护内部连接。

虽然 cert-manager 会根据 Certificate 对象的 durationrenewBefore 字段自动续订证书,但在以下情况下,您可能需要手动触发证书轮替:

  • 私钥遭到入侵。
  • CA 证书已轮替。根据 cert-manager 文档,当与签发者关联的 CA 证书轮替时,叶证书不会自动重新签发。
  • cert-manager 自动重新签发失败。虽然这种情况很少见,但如果由于 cert-manager 常见问题解答 中描述的特定条件而未触发自动重新签发,您必须触发手动轮替。

准备工作

  • 确保您已配置 kubectl 以访问 Kubernetes 集群。
  • 确保 cert-manager 在 Kubernetes 集群上运行。

手动证书轮替

如需手动触发证书轮替,请删除与 cert-manager Certificate 对象关联的 Secret。cert-manager 控制器会协调该对象并重新签发证书,从而创建一个新的 Secret。与 AlloyDB Omni 操作器关联的工作负载会自动重新加载其 TLS 配置,以使用新证书。

  1. 确定要轮替的 cert-manager Certificate。这些对象位于 DBCluster 命名空间和安装 AlloyDB Omni 操作器的命名空间中。CA 证书的名称带有前缀 dbs-al-ca,而叶证书带有前缀 dbs-al-cert。在剩余步骤中,请使用输出中关联的 Secret 的名称。

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. 在触发轮替之前,请备份证书 Secret:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. 删除证书 Secret:

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. 等待 cert-manager 重新创建证书 Secret:

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

验证证书轮替

手动轮替证书后,请验证是否正在使用新证书:

  1. 检查证书 Secret。creationTimestamp 值必须反映您手动轮替证书后的时间:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. 检查 Certificate 状态。验证状态部分中的 notBeforenotAfter 日期是否正确:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

后续步骤