搜索

第 1 章 添加自定义证书

download PDF

了解如何在 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.