9.5. 使用签发者配置证书

通过将 cert-manager Operator 用于 Red Hat OpenShift,您可以为集群中的工作负载管理证书、处理续订和颁发等任务,以及与集群外部交互的组件。

9.5.1. 为用户工作负载创建证书

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 您已为 Red Hat OpenShift 安装了 cert-manager Operator。

流程

  1. 创建签发者。如需更多信息,请参阅"添加资源"部分中的"配置签发者"。
  2. 创建证书:

    1. 创建一个 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

      1
      为证书提供名称。
      2
      指定签发者的命名空间。
      3
      指定通用名称 (CN)。
      4
      指定要创建包含证书的 secret 名称。
      5
      指定域名。
      6
      指定签发者的名称。
    2. 运行以下命令来创建 Certificate 对象:

      $ oc create -f certificate.yaml

验证

  • 运行以下命令验证证书是否已创建并就绪:

    $ oc get certificate -w -n <issuer_namespace>

    证书处于 Ready 状态后,集群中的工作负载就可以使用生成的证书 secret 开始。

9.5.2. 为 API 服务器创建证书

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 您已为 Red Hat OpenShift 1.13.0 或更高版本安装了 cert-manager Operator。

流程

  1. 创建签发者。如需更多信息,请参阅"添加资源"部分中的"配置签发者"。
  2. 创建证书:

    1. 创建一个 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

      1
      为证书提供名称。
      2
      指定通用名称 (CN)。
      3
      指定要创建包含证书的 secret 名称。
      4
      指定 API 服务器的 DNS 名称。
      5
      指定签发者的名称。
    2. 运行以下命令来创建 Certificate 对象:

      $ oc create -f certificate.yaml
  3. 添加名为 certificate 的 API 服务器。如需更多信息,请参阅"添加资源"部分中的"添加名为 certificate 的 API 服务器"部分。
注意

要确保证书已更新,请在创建证书后再次运行 oc login 命令。

验证

  • 运行以下命令验证证书是否已创建并就绪:

    $ oc get certificate -w -n openshift-config

    证书处于 Ready 状态后,集群中的 API 服务器就可以使用生成的证书 secret 开始。

9.5.3. 为 Ingress Controller 创建证书

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 您已为 Red Hat OpenShift 1.13.0 或更高版本安装了 cert-manager Operator。

流程

  1. 创建签发者。如需更多信息,请参阅"添加资源"部分中的"配置签发者"。
  2. 创建证书:

    1. 创建一个 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

      1
      为证书提供名称。
      2
      指定通用名称 (CN)。
      3
      指定要创建包含证书的 secret 名称。
      4 5
      指定入口的 DNS 名称。
      6
      指定签发者的名称。
    2. 运行以下命令来创建 Certificate 对象:

      $ oc create -f certificate.yaml
  3. 替换默认入口证书。如需更多信息,请参阅"添加资源"部分中的"替换默认入口证书"部分。

验证

  • 运行以下命令验证证书是否已创建并就绪:

    $ oc get certificate -w -n openshift-ingress

    证书处于 Ready 状态后,集群中的 Ingress Controller 就可以使用生成的证书 secret 开始。

9.5.4. 其他资源