1.2. 证书
在 Red Hat Advanced Cluster Management 中运行的服务所需的所有证书都是在 Red Hat Advanced Cluster Management 安装过程中创建的。查看以下证书列表,这些证书由 Red Hat OpenShift Container Platform 的以下组件创建和管理:
- OpenShift Service Serving 证书
- Red Hat Advanced Cluster Management Webhook 控制器
- Kubernetes 证书 API
- OpenShift 默认入口
需要的访问权限: 集群管理员
继续阅读以了解有关证书管理的更多信息:
注意 :用户负责证书轮转和更新。
1.2.1. Red Hat Advanced Cluster Management hub 集群证书 复制链接链接已复制到粘贴板!
OpenShift 默认入口证书技术是一个 hub 集群证书。安装 Red Hat Advanced Cluster Management 后,会创建可观察性证书,供可观察性组件用来在 hub 集群和受管集群之间的流量上提供 mutual TLS。
open-cluster-management-observability
命名空间包含以下证书:-
Observability-server-ca-certs
:获取 CA 证书来签署服务器端证书 -
Observability-client-ca-certs
:获取 CA 证书来签署客户端的证书 -
Observability-server-certs
:获取由observability-observatorium-api 部署使用的服务器证书
-
Observability-grafana-certs
:获取observability-rbac-query-proxy
部署使用的客户端证书
-
open-cluster-management-addon-observability
命名空间在受管集群中包含以下证书:-
Observability-managed-cluster-certs
:与 hub 服务器中的observability-server-ca-certs
相同的服务器 CA 证书 -
observability-controller-open-cluster-management.io-observability-signer-client-cert
:由被metrics-collector-deployment
使用的客户证书
-
CA 证书的有效期为五年,其他证书的有效期为一年。所有可观察证书会在过期后自动刷新。查看以下列表以了解证书自动更新时的影响:
- 当剩余的有效时间不超过 73 天时,非 CA 证书将自动续订。续订证书后,相关部署中的 Pod 会自动重启以使用更新的证书。
- 当剩余有效时间不超过一年时,CA 证书会被自动续订。证书被续订后,旧的 CA 不会被删除,而是与更新的 CA 共存。相关部署同时使用旧和更新的证书,并继续工作。旧的 CA 证书在过期时会被删除。
- 当证书被续订时,hub 集群和受管集群之间的流量不会中断。
查看以下 Red Hat Advanced Cluster Management hub 集群证书表:
Namespace | Secret 名称 | Pod 标签 | |
---|---|---|---|
open-cluster-management | channels-apps-open-cluster-management-webhook-svc-ca | app=multicluster-operators-channel | open-cluster-management |
channels-apps-open-cluster-management-webhook-svc-signed-ca | app=multicluster-operators-channel | open-cluster-management | multicluster-operators-application-svc-ca |
app=multicluster-operators-application | open-cluster-management | multicluster-operators-application-svc-signed-ca | app=multicluster-operators-application |
open-cluster-management-hub | registration-webhook-serving-cert signer-secret | 不是必需的 | open-cluster-management-hub |
1.2.2. Red Hat Advanced Cluster Management 管理的证书 复制链接链接已复制到粘贴板!
查看下表,了解包含 Red Hat Advanced Cluster Management 管理的证书和相关 secret 的组件 pod 的总结列表:
Namespace | Secret 名称(如果适用) |
---|---|
open-cluster-management-agent-addon | cluster-proxy-open-cluster-management.io-proxy-agent-signer-client-cert |
open-cluster-management-agent-addon | cluster-proxy-service-proxy-server-certificates |
1.2.2.1. 受管集群证书 复制链接链接已复制到粘贴板!
您可以使用证书通过 hub 集群验证受管集群。因此,了解与这些证书关联的故障排除方案非常重要。
受管集群证书会自动刷新。
1.2.3. 其他资源 复制链接链接已复制到粘贴板!
- 在受管集群中使用证书策略控制器来创建和管理证书策略。如需了解更多详细信息,请参阅证书策略控制器。
- 有关使用 SSL/TLS 证书安全连接到私有托管的 Git 服务器的更多详细信息,请参阅使用自定义 CA 证书进行安全 HTTPS 连接。
- 如需了解更多详细信息,请参阅 OpenShift Service Serving 证书。
- OpenShift Container Platform 默认入口是一个 hub 集群证书。如需了解更多详细信息 ,请参阅重新放置 默认入口证书。
- 有关主题,请参阅 证书简介。
1.2.4. 管理证书 复制链接链接已复制到粘贴板!
继续阅读以了解有关如何刷新、替换、轮转和列出证书的信息。
您可以刷新 Red Hat Advanced Cluster Management 受管证书,它们是由 Red Hat Advanced Cluster Management 服务创建和管理的证书。
完成以下步骤以刷新 Red Hat Advanced Cluster Management 管理的证书:
运行以下命令,删除与 Red Hat Advanced Cluster Management 管理证书关联的 secret:
oc delete secret -n <namespace> <secret>
oc delete secret -n <namespace> <secret>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<namespace>
和<secret>
替换为您要使用的值。
运行以下命令,重启与 Red Hat Advanced Cluster Management 受管证书关联的服务:
oc delete pod -n <namespace> -l <pod-label>
oc delete pod -n <namespace> -l <pod-label>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<namespace>
和<pod-label>
替换为 Red Hat Advanced Cluster Management 受管集群证书 表中的值。
注: 如果没有指定
pod-label
,则不会重启任何服务。secret 被重新创建并自动使用。
1.2.4.2. 替换 alertmanager 路由的证书 复制链接链接已复制到粘贴板!
如果您不想使用 OpenShift 默认入口证书,您可以通过更新 alertmanager 路由来替换 alertmanager 证书。完成以下步骤:
使用以下命令检查可观察证书:
openssl x509 -noout -text -in ./observability.crt
openssl x509 -noout -text -in ./observability.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将证书上的通用名称 (
CN
) 更改为alertmanager
。 -
使用 alertmanager 路由的主机名更改
csr.cnf
配置文件中的 SAN。 在
open-cluster-management-observability
命名空间中创建以下两个 secret。运行以下命令:oc -n open-cluster-management-observability create secret tls alertmanager-byo-ca --cert ./ca.crt --key ./ca.key oc -n open-cluster-management-observability create secret tls alertmanager-byo-cert --cert ./ingress.crt --key ./ingress.key
oc -n open-cluster-management-observability create secret tls alertmanager-byo-ca --cert ./ca.crt --key ./ca.key oc -n open-cluster-management-observability create secret tls alertmanager-byo-cert --cert ./ingress.crt --key ./ingress.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.4.3. 替换 rbac-query-proxy 路由的证书 复制链接链接已复制到粘贴板!
您可以替换 rbac-query-proxy
路由的证书。请参阅 创建您自己的可观察证书颁发机构(CA)证书 来创建证书。
当您使用 csr.cnf
文件创建证书签名请求(CSR)时,更新 subjectAltName
部分中的 DNS.1
字段,以匹配 rbac-query-proxy
路由的主机名。
完成以下步骤:
运行以下命令来检索主机名:
oc get route rbac-query-proxy -n open-cluster-management-observability -o jsonpath=" {.spec.host}"
oc get route rbac-query-proxy -n open-cluster-management-observability -o jsonpath=" {.spec.host}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用生成的证书创建
proxy-byo-ca
secret:oc -n open-cluster-management-observability create secret tls proxy-byo-ca --cert ./ca.crt --key ./ca.key
oc -n open-cluster-management-observability create secret tls proxy-byo-ca --cert ./ca.crt --key ./ca.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用生成的证书创建
proxy-byo-cert
secret:oc -n open-cluster-management-observability create secret tls proxy-byo-cert --cert ./ingress.crt --key ./ingress.key
oc -n open-cluster-management-observability create secret tls proxy-byo-cert --cert ./ingress.crt --key ./ingress.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.4.4. 轮转 gatekeeper Webhook 证书 复制链接链接已复制到粘贴板!
完成以下步骤以轮转 gatekeeper Webhook 证书:
使用以下命令编辑包含证书的 secret:
oc edit secret -n openshift-gatekeeper-system gatekeeper-webhook-server-cert
oc edit secret -n openshift-gatekeeper-system gatekeeper-webhook-server-cert
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
删除
data
部分中的以下内容:ca.crt
、ca.key
、tls.crt
和tls.key
。 使用以下命令删除
gatekeeper-controller-manager
pod 来重启 gatekeeper Webhook 服务:oc delete pod -n openshift-gatekeeper-system -l control-plane=controller-manager
oc delete pod -n openshift-gatekeeper-system -l control-plane=controller-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
gatekeeper Webhook 证书被轮转。
1.2.4.5. 验证证书轮转 复制链接链接已复制到粘贴板!
按照以下流程验证您的证书是否已轮转:
- 找到要检查的 secret。
-
检查
tls.crt
密钥以验证证书是否可用。 使用以下命令显示证书信息:
oc get secret <your-secret-name> -n open-cluster-management -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout
oc get secret <your-secret-name> -n open-cluster-management -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<your-secret-name>
替换为您要验证的 secret 的名称。如果需要,还要更新命名空间和 JSON 路径。检查输出中的
Validity
详情。查看以下Validity
示例:Validity Not Before: Jul 13 15:17:50 2023 GMT Not After : Jul 12 15:17:50 2024 GMT
Validity Not Before: Jul 13 15:17:50 2023 GMT
1 Not After : Jul 12 15:17:50 2024 GMT
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.4.6. 列出 hub 集群受管证书 复制链接链接已复制到粘贴板!
您可以查看在内部使用 OpenShift Service Serving 证书服务的 hub 集群受管证书列表。运行以下命令列出证书:
for ns in multicluster-engine open-cluster-management ; do echo "$ns:" ; oc get secret -n $ns -o custom-columns=Name:.metadata.name,Expiration:.metadata.annotations.service\\.beta\\.openshift\\.io/expiry | grep -v '<none>' ; echo ""; done
for ns in multicluster-engine open-cluster-management ; do echo "$ns:" ; oc get secret -n $ns -o custom-columns=Name:.metadata.name,Expiration:.metadata.annotations.service\\.beta\\.openshift\\.io/expiry | grep -v '<none>' ; echo ""; done
如需更多信息,请参阅附加资源部分中的 OpenShift Service Serving 证书部分。
注:如果启用了可观察性,则还需要额外的命名空间来创建证书。