11.3.4. 续订您自己的 CA 证书


这个步骤描述了如何续订之前安装的 CA 证书和密钥。您需要在续订期间按照以下步骤替换即将过期的 CA 证书。

您可以使用此流程安装自己的集群或客户端 CA 证书。

流程描述了 PEM 格式的 CA 证书续订。您还可以使用 PKCS #12 格式的证书。

先决条件

  • Cluster Operator 正在运行。
  • 之前安装自己的 CA 证书和私钥的 Kafka 集群。
  • 新群集和客户端 X.509 证书和密钥,格式为 PEM。

它们可使用 openssl 命令生成,例如:

openssl req -x509 -new -days NUMBER-OF-DAYS-VALID --nodes -out ca.crt -keyout ca.key

步骤

  1. Secret 中检查当前 CA 证书的详情:

    oc describe secret CA-CERTIFICATE-SECRET

    ca-CERTIFICATE-SECRETSecret 的名称,这是用于集群 CA 证书的 KAFKA-CLUSTER-NAME-cluster-ca-cert 和用于客户端 CA 证书的 KAFKA-CLUSTER-NAME-clients-ca-cert

  2. 创建一个目录,使其包含 secret 中的现有 CA 证书。

    mkdir new-ca-cert-secret
    cd new-ca-cert-secret
  3. 获取您要续订的每个 CA 证书的 secret:

    oc get secret CA-CERTIFICATE-SECRET -o 'jsonpath={.data.CA-CERTIFICATE}' | base64 -d > CA-CERTIFICATE

    CA-CERTIFICATE 替换为每个 CA 证书的名称。

  4. 将旧的 ca.crt 文件重命名为 ca-DATE. crt,其中 DATE 是证书到期日期,格式为 YEAR -MONTH-DAYTHOUR-MINUTE-SECONDZ

    例如 ca-2018-09-27T17-32-00Z.crt

    mv ca.crt ca-$(date -u -d$(openssl x509 -enddate -noout -in ca.crt | sed 's/.*=//') +'%Y-%m-%dT%H-%M-%SZ').crt
  5. 将您的新 CA 证书复制到该目录,并将其命名为 ca.crt

    cp PATH-TO-NEW-CERTIFICATE ca.crt
  6. 将您的 CA 证书放在对应的 Secret 中

    1. 删除现有的 secret:

      oc delete secret CA-CERTIFICATE-SECRET

      CA-CERTIFICATE-SECRETSecret 的名称,在第一步中返回。

      忽略任何"Not Exists"错误。

    2. 重新创建 secret:

      oc create secret generic CA-CERTIFICATE-SECRET --from-file=.
  7. 删除您创建的目录:

    cd ..
    rm -r new-ca-cert-secret
  8. 将您的 CA 密钥放在对应的 Secret 中

    1. 删除现有的 secret:

      oc delete secret CA-KEY-SECRET

      ca-KEY-SECRET 是 CA 密钥的名称,这是用于集群 CA 密钥的 KAFKA-CLUSTER-NAME-cluster-ca,用于客户端 CA 密钥的 KAFKA-CLUSTER-NAME-clients-ca

    2. 使用新 CA 密钥重新创建 secret:

      oc create secret generic CA-KEY-SECRET --from-file=ca.key=CA-KEY-SECRET-FILENAME
  9. 使用 labels strimzi.io/kind=Kafkastrimzi.io/cluster=KAFKA-CLUSTER-NAME 标记 secret:

    oc label secret CA-CERTIFICATE-SECRET strimzi.io/kind=Kafka strimzi.io/cluster=KAFKA-CLUSTER-NAME
    oc label secret CA-KEY-SECRET strimzi.io/kind=Kafka strimzi.io/cluster=KAFKA-CLUSTER-NAME
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.