×

使用Red Hat OpenShift的cert-manager Operator,您可以管理证书,处理集群内工作负载以及与集群外部交互的组件的证书续订和签发等任务。

为用户工作负载创建证书

先决条件
  • 您可以使用具有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 指定要创建的包含证书的密钥的名称。
      5 指定域名。
      6 指定颁发者的名称。
    2. 运行以下命令创建Certificate对象

      $ oc create -f certificate.yaml
验证
  • 运行以下命令验证证书是否已创建并可以使用

    $ oc get certificate -w -n <issuer_namespace>

    一旦证书处于Ready状态,集群上的工作负载就可以开始使用生成的证书密钥。

为API服务器创建证书

先决条件
  • 您可以使用具有cluster-admin权限的集群。

  • 您已安装Red Hat OpenShift的cert-manager Operator 1.13.0或更高版本。

步骤
  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 指定要创建的包含证书的密钥的名称。
      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服务器就可以开始使用生成的证书密钥。

为Ingress Controller创建证书

先决条件
  • 您可以使用具有cluster-admin权限的集群。

  • 您已安装Red Hat OpenShift的cert-manager Operator 1.13.0或更高版本。

步骤
  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>" (4)
        issuerRef:
          name: <issuer_name> (5)
          kind: Issuer
      1 为证书提供一个名称。
      2 指定公用名(CN)。
      3 指定要创建的包含证书的密钥的名称。
      4 指定入口的DNS名称。
      5 指定颁发者的名称。
    2. 运行以下命令创建Certificate对象

      $ oc create -f certificate.yaml
  3. 替换默认的入口证书。更多信息,请参见“其他资源”部分中的“替换默认入口证书”部分。

验证
  • 运行以下命令验证证书是否已创建并可以使用

    $ oc get certificate -w -n openshift-ingress

    一旦证书处于Ready状态,集群上的Ingress Controller就可以开始使用生成的证书密钥。