9.8. 使用签发者配置证书
通过将 cert-manager Operator 用于 Red Hat OpenShift,您可以为集群中的工作负载管理证书、处理续订和颁发等任务,以及与集群外部交互的组件。
9.8.1. 为用户工作负载创建证书
先决条件
-
您可以使用
cluster-admin
权限访问集群。 - 您已为 Red Hat OpenShift 安装了 cert-manager Operator。
流程
- 创建签发者。如需更多信息,请参阅"添加资源"部分中的"配置签发者"。
创建证书:
创建一个 YAML 文件,如
certificate.yaml
,用于定义Certificate
对象:certificate.yaml
文件示例apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <tls_cert> 1 namespace: <issuer_namespace> 2 spec: isCA: false commonName: '<common_name>' 3 secretName: <secret_name> 4 dnsNames: - "<domain_name>" 5 issuerRef: name: <issuer_name> 6 kind: Issuer
运行以下命令来创建
Certificate
对象:$ oc create -f certificate.yaml
验证
运行以下命令验证证书是否已创建并就绪:
$ oc get certificate -w -n <issuer_namespace>
证书处于
Ready
状态后,集群中的工作负载就可以使用生成的证书 secret 开始。
9.8.2. 为 API 服务器创建证书
先决条件
-
您可以使用
cluster-admin
权限访问集群。 - 您已为 Red Hat OpenShift 安装了 cert-manager Operator 版本 1.13.0 或更高版本。
流程
- 创建签发者。如需更多信息,请参阅"添加资源"部分中的"配置签发者"。
创建证书:
创建一个 YAML 文件,如
certificate.yaml
,用于定义Certificate
对象:certificate.yaml
文件示例apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <tls_cert> 1 namespace: openshift-config spec: isCA: false commonName: "api.<cluster_base_domain>" 2 secretName: <secret_name> 3 dnsNames: - "api.<cluster_base_domain>" 4 issuerRef: name: <issuer_name> 5 kind: Issuer
运行以下命令来创建
Certificate
对象:$ oc create -f certificate.yaml
- 添加名为 certificate 的 API 服务器。如需更多信息,请参阅"添加资源"部分中的"添加名为 certificate 的 API 服务器"部分。
要确保证书已更新,请在创建证书后再次运行 oc login
命令。
验证
运行以下命令验证证书是否已创建并就绪:
$ oc get certificate -w -n openshift-config
证书处于
Ready
状态后,集群中的 API 服务器就可以使用生成的证书 secret 开始。
9.8.3. 为 Ingress Controller 创建证书
先决条件
-
您可以使用
cluster-admin
权限访问集群。 - 您已为 Red Hat OpenShift 安装了 cert-manager Operator 版本 1.13.0 或更高版本。
流程
- 创建签发者。如需更多信息,请参阅"添加资源"部分中的"配置签发者"。
创建证书:
创建一个 YAML 文件,如
certificate.yaml
,用于定义Certificate
对象:certificate.yaml
文件示例apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <tls_cert> 1 namespace: openshift-ingress spec: isCA: false commonName: "apps.<cluster_base_domain>" 2 secretName: <secret_name> 3 dnsNames: - "apps.<cluster_base_domain>" 4 - "*.apps.<cluster_base_domain>" 5 issuerRef: name: <issuer_name> 6 kind: Issuer
运行以下命令来创建
Certificate
对象:$ oc create -f certificate.yaml
- 替换默认入口证书。如需更多信息,请参阅"添加资源"部分中的"替换默认入口证书"部分。
验证
运行以下命令验证证书是否已创建并就绪:
$ oc get certificate -w -n openshift-ingress
证书处于
Ready
状态后,集群中的 Ingress Controller 就可以使用生成的证书 secret 开始。