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