第 1 章 添加自定义证书


了解如何在 Red Hat Advanced Cluster Security for Kubernetes 中使用自定义 TLS 证书。设置证书后,用户和 API 客户端不必在连接到 Central 时绕过证书安全警告。

1.1. 添加自定义安全证书

您可以在安装过程中或在现有的 Red Hat Advanced Cluster Security for Kubernetes 部署中应用安全证书。

1.1.1. 添加自定义证书的先决条件

前提条件

  • 您必须已经有 PEM 编码的私钥和证书文件。
  • 证书文件应以人类可读的块开头和结束。例如:

    -----BEGIN CERTIFICATE-----
    MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G
    ...
    l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo=
    -----END CERTIFICATE-----
  • 证书文件可以包含单个(叶)证书,也可以是证书链。

    警告
    • 如果证书不是由可信 root 直接签名的证书,您必须提供完整的证书链,包括任何中间证书。
    • 链中的所有证书都必须按顺序进行,以便叶证书是第一个证书,root 证书是链中的最后一个证书。
  • 如果您使用不是全局可信的自定义证书,还必须将 Sensor 配置为信任您的自定义证书。

1.1.2. 在新安装过程中添加自定义证书

流程

  • 如果使用 Operator 安装 Red Hat Advanced Cluster Security for Kubernetes:

    1. 输入以下命令,创建一个 central-default-tls-cert secret,其中包含安装 Central 服务的命名空间中的适当 TLS 证书:

      oc -n <namespace> create secret tls central-default-tls-cert --cert <tls-cert.pem> --key <tls-key.pem>
  • 如果使用 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes:

    1. values-private.yaml 文件中添加自定义证书及其密钥:

      central:
        # Configure a default TLS certificate (public cert + private key) for central
        defaultTLS:
          cert: |
            -----BEGIN CERTIFICATE-----
            EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G
            ...
            -----END CERTIFICATE-----
          key: |
            -----BEGIN EC PRIVATE KEY-----
            EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo=
            ...
            -----END EC PRIVATE KEY-----
    2. 在安装过程中提供配置文件:

      $ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
  • 如果要使用 roxctl CLI 安装 Red Hat Advanced Cluster Security for Kubernetes,请在运行安装程序时提供证书和密钥文件:

    • 对于非交互式安装程序,请使用 --default-tls-cert--default-tls-key 选项:

      $ roxctl central generate --default-tls-cert "cert.pem" --default-tls-key "key.pem"
    • 对于交互式安装程序,在输入提示时提供证书和密钥文件:

      ...
      Enter PEM cert bundle file (optional): <cert.pem>
      Enter PEM private key file (optional): <key.pem>
      Enter administrator password (default: autogenerated):
      Enter orchestrator (k8s, openshift): openshift
      ...

1.1.3. 为现有实例添加自定义证书

流程

  • 如果您使用 Operator 安装 Red Hat Advanced Cluster Security for Kubernetes:

    1. 输入以下命令,创建一个 central-default-tls-cert secret,其中包含安装 Central 服务的命名空间中的适当 TLS 证书:

      oc -n <namespace> create secret tls central-default-tls-cert --cert <tls-cert.pem> --key <tls-key.pem>
  • 如果您使用 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes:

    1. values-private.yaml 文件中添加自定义证书及其密钥:

      central:
        # Configure a default TLS certificate (public cert + private key) for central
        defaultTLS:
          cert: |
            -----BEGIN CERTIFICATE-----
            EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G
            ...
            -----END CERTIFICATE-----
          key: |
            -----BEGIN EC PRIVATE KEY-----
            EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo=
            ...
            -----END EC PRIVATE KEY-----
    2. 使用 helm upgrade 命令并提供更新的配置文件:

      $ helm upgrade -n stackrox --create-namespace stackrox-central-services \
       rhacs/central-services --reuse-values \1
       -f values-private.yaml
      1
      您必须使用此参数,因为 values-private.yaml 文件不包含所有所需的配置值。
  • 如果您使用 roxctl CLI 安装 Red Hat Advanced Cluster Security for Kubernetes:

    • 从 PEM 编码的密钥和证书文件创建并应用 TLS secret:

      $ oc -n stackrox create secret tls central-default-tls-cert \
        --cert <server_cert.pem> \
        --key <server_key.pem> \
        --dry-run -o yaml | oc apply -f -

      运行此命令后,Central 会自动应用新密钥和证书,而无需重启 pod。可能需要一分钟时间来传播更改。

1.1.4. 为现有实例更新自定义证书

如果将自定义证书用于 Central,您可以执行以下步骤来更新证书。

流程

  1. 删除现有的自定义证书 secret:

    $ oc delete secret central-default-tls-cert
  2. 创建新 secret:

    $ oc -n stackrox create secret tls central-default-tls-cert \
      --cert <server_cert.pem> \
      --key <server_key.pem> \
      --dry-run -o yaml | oc apply -f -
  3. 重启 Central 容器。

1.1.4.1. 重启 Central 容器

您可以通过终止 Central 容器或删除 Central pod 来重启 Central 容器。

流程

  • 运行以下命令以终止 Central 容器:

    注意

    您必须至少等待 1 分钟,直到 OpenShift Container Platform 传播您的更改并重启 Central 容器。

    $ oc -n stackrox exec deploy/central -c central -- kill 1
  • 或者,运行以下命令来删除 Central pod:

    $ oc -n stackrox delete pod -lapp=central
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.