You are viewing documentation for a release that is no longer maintained. To view the documentation for the most recent version, see the latest RHACS docs.
第 1 章 添加自定义证书
了解如何将自定义 TLS 证书与 Red Hat Advanced Cluster Security for Kubernetes 搭配使用。设置证书后,用户和 API 客户端在连接到 Central 时无需绕过证书安全警告。
1.1. 添加自定义安全证书
您可以在安装过程中或现有 Red Hat Advanced Cluster Security for Kubernetes 部署应用安全证书。
1.1.1. 添加自定义证书的先决条件
先决条件
- 您必须已经有 PEM 编码的私钥和证书文件。
证书文件应当以可读的块开头和结尾。例如:
-----BEGIN CERTIFICATE----- MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= -----END CERTIFICATE-----
证书文件可以包含单一(leaf)证书,也可以是证书链。
警告- 如果证书不直接由可信 root 签名,则必须提供完整的证书链,包括任何中间证书。
- 链中的所有证书都必须按顺序排列,因此 leaf certificate 是第一个证书,root 证书是链中的最后一个。
- 如果您使用不全局信任的自定义证书,还必须将 Sensor 配置为信任您的自定义证书。
1.1.2. 在新安装过程中添加自定义证书
流程
如果要使用 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes:
在
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-----
在安装过程中提供配置文件:
$ 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. 为现有实例添加自定义证书
流程
如果使用 Helm 安装 Red Hat Advanced Cluster Security for Kubernetes:
在
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-----
使用
helm upgrade
命令并提供更新的配置文件:$ helm upgrade -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f 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,您可以执行以下步骤来更新证书。
流程
删除现有的自定义证书的 secret:
$ oc delete secret central-default-tls-cert
创建新 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 容器。
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