第 3 章 cert-manager 的自定义签发者


签发者是作为特定命名空间的证书颁发机构的资源,并由 cert-manager Operator 管理。TLS-e (TLS)在 OpenShift (RHOSO)环境中的 Red Hat OpenStack Services 中启用,默认使用以下签发者:

  • rootca-internal
  • rootca-libvirt
  • rootca-ovn
  • rootca-public

3.1. 创建自定义签发者

您可以创建自定义入口和自定义的内部签发者。要为内部端点创建和管理您自己的证书,您必须创建一个自定义内部签发者。

流程

  1. 在名为 rootca-custom.yaml 的文件中创建一个自定义签发者:

    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: <issuer_name>
    spec:
      ca:
        secretName: <secret_name>
    Copy to Clipboard Toggle word wrap
    • <issuer_name > 替换为自定义签发者的名称,如 rootca-ingress-custom
    • <secret_name > 替换为自定义签发者的证书使用的 Secret CR 名称。如果没有包含 secret,则会自动创建 secret。
  2. 在名为 ca-issuer-certificate.yaml 的文件中创建证书:

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: <issuer_name>
    spec:
      commonName: <issuer_name>
      isCA: true
      duration: <hours>
      privateKey:
        algorithm: RSA
        size: 3072
      issuerRef:
        name: selfsigned-issuer
        kind: Issuer
      secretName: <secret-name>
    Copy to Clipboard Toggle word wrap
    • <issuer_name > 替换为自定义签发者的名称。这与第一步中创建的签发者匹配。
    • &lt;hours> 替换为小时中的持续时间,例如 87600h 等于 3650 天或大约 10 年。
    • <secret_name > 替换为自定义签发者的证书使用的 Secret CR 名称。如果没有包含 secret,则会自动创建 secret。
  3. 创建签发者和证书:

    $ oc create -f rootca-custom.yaml
    $ oc create -f ca-issuer-certificate.yaml
    Copy to Clipboard Toggle word wrap
  4. 将自定义签发者添加到 control plane CR 文件中的 TLS 服务定义中。

    1. 如果您的自定义签发者是入口签发者,则客户签发者在 ingress 属性下定义,如下所示:

      apiVersion: core.openstack.org/v1beta1
      kind: OpenStackControlPlane
      metadata:
        name: openstack-control-plane
      spec:
        tls:
           ingress:
             enabled: true
             ca:
               customIssuer: <issuer_name>
         ...
      Copy to Clipboard Toggle word wrap
      • <issuer_name > 替换为自定义签发者的名称。这与第一步中创建的签发者匹配。
    2. 如果您的自定义签发者是内部签发者,自定义签发者在 internal 属性下的 pod 级别定义,如下所示:

      apiVersion: core.openstack.org/v1beta1
      kind: OpenStackControlPlane
      metadata:
        name: myctlplane
      spec:
        tls:
           ingress:
             enabled: true
           podLevel:
             enabled: true
             internal:
               ca:
                 customIssuer: <issuer_name>
      Copy to Clipboard Toggle word wrap
      • <issuer_name > 替换为自定义签发者的名称。这与第一步中创建的签发者匹配。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat