11.3. 证书续订和有效期周期
集群 CA 和客户端 CA 证书仅在有限时间内有效,称为有效期。这通常定义为生成证书起的天数。
对于自动生成的 CA 证书,您可以配置以下有效周期:
-
Kafka.spec.clusterCa.validityDays
中的集群 CA 证书 -
Kafka.spec.clientsCa.validityDays
中的客户端 CA 证书
两个证书的默认有效期为 365 天。手动安装的 CA 证书应该定义自己的有效期。
当 CA 证书过期时,仍信任该证书的组件和客户端将不接受来自证书由 CA 私钥签名的对等点的 TLS 连接。组件和客户端需要信任 新的 CA 证书。
为了能在不丢失服务的情况下续订 CA 证书,Cluster Operator 将在旧 CA 证书过期前启动证书续订。
您可以配置续订周期:
-
Kafka.spec.clusterCa.renewalDays
中的集群 CA 证书 -
Kafka.spec.clientsCa.renewalDays
中的客户端 CA 证书
两个证书的默认续订期限为 30 天。
从当前证书的到期日期起,续订期向后测量。
针对续订期的有效周期
Not Before Not After | | |<--------------- validityDays --------------->| <--- renewalDays --->|
要在创建 Kafka 集群后更改有效期和续订周期,您需要配置并应用 Kafka
自定义资源,并 手动更新 CA 证书。如果您不手动续订证书,在下次自动更新证书时将使用新的句点。
证书的有效性和续订周期的 Kafka 配置示例
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka # ... spec: # ... clusterCa: renewalDays: 30 validityDays: 365 generateCertificateAuthority: true clientsCa: renewalDays: 30 validityDays: 365 generateCertificateAuthority: true # ...
在续订期间 Cluster Operator 的行为取决于在 Kafka.spec. clusterCa.generateCertificateAuthority 或
中是否启用了相关设置。
Kafka.spec
.clientsCa.generateCertificateAuthority
11.3.1. 使用生成的 CA 的续订过程
Cluster Operator 执行以下流程来更新 CA 证书:
-
生成新的 CA 证书,但保留现有密钥。新证书将旧证书替换为对应
Secret
中的名称 ca.crt
。 - 生成新的客户端证书(用于 ZooKeeper 节点、Kafka 代理和 Entity Operator)。这并非绝对必要,因为签名密钥尚未更改,但它保持客户端证书的有效性期限与 CA 证书同步。
- 重启 ZooKeeper 节点,以便它们信任新的 CA 证书并使用新的客户端证书。
- 重启 Kafka 代理,以便它们信任新的 CA 证书并使用新的客户端证书。
- 重启主题和用户 Operator,以便它们信任新的 CA 证书并使用新的客户端证书。