11.3.3. 手动续订 Cluster Operator 生成的 CA 证书
Cluster Operator 生成的集群和客户端 CA 证书会在各自的证书续订期开始时自动更新。但是,您可以在证书续订周期开始前,使用 strimzi.io/force-renew
注解手动续订这些证书的一个或多个证书。出于安全原因 或更改了证书的续订期或有效期,您可以这样做。
更新的证书使用与旧证书相同的私钥。
如果您使用自己的 CA 证书,则无法使用 force-renew
注解。相反,请按照 更新您自己的 CA 证书 的步骤进行操作。
先决条件
- Cluster Operator 正在运行。
- 安装 CA 证书和私钥的 Kafka 集群。
流程
将
strimzi.io/force-renew
注解应用到包含您要续订的 CA 证书的Secret
。表 11.8. 强制续订证书的 Secret 注解 证书 Secret annotate 命令 集群 CA
KAFKA-CLUSTER-NAME-cluster-ca-cert
oc annotate secret KAFKA-CLUSTER-NAME-cluster-ca-cert strimzi.io/force-renew=true
客户端 CA
KAFKA-CLUSTER-NAME-clients-ca-cert
oc annotate secret KAFKA-CLUSTER-NAME-clients-ca-cert strimzi.io/force-renew=true
在下一次协调中,Cluster Operator 会为您注解的
Secret
生成一个新的 CA 证书。如果配置了维护时间窗,Cluster Operator 将在下一个维护时间窗内第一次协调时生成新的 CA 证书。客户端应用程序必须重新载入由 Cluster Operator 更新的集群和客户端 CA 证书。
检查 CA 证书有效的周期:
例如,使用
openssl
命令:oc get secret CA-CERTIFICATE-SECRET -o 'jsonpath={.data.CA-CERTIFICATE}' | base64 -d | openssl x509 -subject -issuer -startdate -enddate -noout
ca-CERTIFICATE-SECRET 是
Secret
的名称,这是用于集群 CA证书的 KAFKA-CLUSTER-NAME-cluster-ca-cert
和用于客户端 CA 证书的KAFKA-CLUSTER-NAME-clients-ca-cert
。ca-CERTIFICATE 是 CA 证书的名称,如
jsonpath={.data.ca\.crt}
。该命令会返回
notBefore
和notAfter
日期,这是 CA 证书的有效周期。例如,对于集群 CA 证书:
subject=O = io.strimzi, CN = cluster-ca v0 issuer=O = io.strimzi, CN = cluster-ca v0 notBefore=Jun 30 09:43:54 2020 GMT notAfter=Jun 30 09:43:54 2021 GMT
从 Secret 删除旧证书。
当组件使用新证书时,旧证书可能仍处于活跃状态。删除旧证书以消除任何潜在的安全风险。