3.2. 在 OpenShift Container Platform 上的 Red Hat Quay 中添加额外的证书颁发机构


在 OpenShift Container Platform 上的 Red Hat Quay 中,使用 extra_ca_certs 配置字段将额外证书颁发机构(CA)填充到 CA 目录中,然后将 CA 添加到系统信任捆绑包中。Red Hat Quay 使用这些证书来验证与 LDAP、OIDC 和存储系统等外部服务的 SSL/TLS 连接。

在 OpenShift Container Platform 上部署或重新部署 Red Hat Quay 时,您可以将一个或多个 CA 添加到 CA 目录中,以确保外部服务被正确保护并验证。在 OpenShift Container Platform 部署的 Red Hat Quay 中,您必须手动将 extra_ca_certs 配置字段添加到 config.yaml 文件中,并将 config.yaml 重新上传到 OpenShift Container Platform。

以下流程演示了如何下载现有配置文件,将额外的 CA 添加到 OpenShift Container Platform 部署的 Red Hat Quay 中,然后重新上传配置文件。

3.2.1. 使用 CLI 修改配置文件

您可以使用 CLI 下载现有配置来修改 configBundleSecret 存储的 config.yaml 文件。进行更改后,您可以重新上传 configBundleSecret 资源,以更改 Red Hat Quay registry。

注意

修改 configBundleSecret 资源存储的 config.yaml 文件是一个多步骤,需要 base64 解码现有配置文件,然后上传更改。在大多数情况下,使用 OpenShift Container Platform Web 控制台对 config.yaml 文件进行更改更为简单。

先决条件

  • 以具有 admin 权限的用户身份登录 OpenShift Container Platform 集群。

流程

  1. 输入以下命令描述 QuayRegistry 资源:

    $ oc describe quayregistry -n <quay_namespace>
    Copy to Clipboard Toggle word wrap
    # ...
      Config Bundle Secret:  example-registry-config-bundle-v123x
    # ...
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令来获取 secret 数据:

    $ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'
    Copy to Clipboard Toggle word wrap

    输出示例

    {
        "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo="
    }
    Copy to Clipboard Toggle word wrap

  3. 通过传递 >> config.yaml 标志,将数据 解码到当前目录中。例如:

    $ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
    Copy to Clipboard Toggle word wrap
  4. config.yaml 文件进行所需的更改,然后将该文件保存为 config.yaml
  5. 输入以下命令创建新的 configBundleSecret YAML。

    $ touch <new_configBundleSecret_name>.yaml
    Copy to Clipboard Toggle word wrap
  6. 输入以下命令来创建新的 configBundleSecret 资源,传递 config.yaml 文件':

    $ oc -n <namespace> create secret generic <secret_name> \
      --from-file=config.yaml=</path/to/config.yaml> \ 
    1
    
      --dry-run=client -o yaml > <new_configBundleSecret_name>.yaml
    Copy to Clipboard Toggle word wrap
    1
    其中 <config.yaml& gt; 是您的 base64 解码config.yaml 文件。
  7. 输入以下命令来创建 configBundleSecret 资源:

    $ oc create -n <namespace> -f <new_configBundleSecret_name>.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    secret/config-bundle created
    Copy to Clipboard Toggle word wrap

  8. 输入以下命令更新 QuayRegistry YAML 文件来引用新的 configBundleSecret 对象:

    $ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'
    Copy to Clipboard Toggle word wrap

    输出示例

    quayregistry.quay.redhat.com/example-registry patched
    Copy to Clipboard Toggle word wrap

验证

  1. 验证 QuayRegistry CR 已使用新的 configBundleSecret 更新:

    $ oc describe quayregistry -n <quay_namespace>
    Copy to Clipboard Toggle word wrap

    输出示例

    # ...
      Config Bundle Secret: <new_configBundleSecret_name>
    # ...
    Copy to Clipboard Toggle word wrap

    修补 registry 后,Red Hat Quay Operator 会自动协调更改。

以下示例演示了如何在 OpenShift Container Platform 部署的 Red Hat Quay 中添加额外的证书颁发机构。

先决条件

  • 您有 base64 将原始配置捆绑包解码为一个 config.yaml 文件。如需更多信息 ,请参阅下载现有配置
  • 您有一个证书颁发机构(CA)文件或文件。

流程

  1. 创建新的 YAML 文件,如 extra-ca-certificate-config-bundle-secret.yaml

    $ touch extra-ca-certificate-config-bundle-secret.yaml
    Copy to Clipboard Toggle word wrap
  2. 创建 extra-ca-certificate-config-bundle-secret 资源。

    1. 运行以下命令来创建资源:

      $ oc -n <namespace> create secret generic extra-ca-certificate-config-bundle-secret \
        --from-file=config.yaml=</path/to/config.yaml> \ 
      1
      
        --from-file=extra_ca_cert_<name-of-certificate-one>=<path/to/certificate_one> \ 
      2
      
        --from-file=extra_ca_cert_<name-of-certificate-two>=<path/to/certificate_two> \ 
      3
      
        --from-file=extra_ca_cert_<name-of-certificate-three>=<path/to/certificate_three> \ 
      4
      
        --dry-run=client -o yaml > extra-ca-certificate-config-bundle-secret.yaml
      Copy to Clipboard Toggle word wrap
      1
      其中 <config.yaml& gt; 是您的 base64 解码config.yaml 文件。
      2
      要添加到系统信任捆绑包中的额外 CA 文件。
      3
      可选。要添加到系统信任捆绑包中的第二个 CA 文件。
      4
      可选。要添加到系统信任捆绑包中的第三个 CA 文件。
  3. 可选。您可以输入以下命令来检查 extra-ca-certificate-config-bundle-secret.yaml 文件的内容:

    $ cat extra-ca-certificate-config-bundle-secret.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    apiVersion: v1
    data:
      config.yaml: QUxMT1dfUFVMTFNfV0lUSE9VVF9TVFJJQ1RfTE9HR0lORzogZmFsc2UKQVVUSEVOVElDQVRJT05fVFlQRTogRGF0YWJhc2UKREVGQVVMVF9UQUdfRVhQSVJBVElPTjogMncKUFJFRkVSU...
      extra_ca_cert_certificate-one: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQyVENDQXNHZ0F3SUJBZ0lVS2xOai90VUJBZHBkNURjYkdRQUo4anRuKzd3d0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQ...
      extra_ca_cert_certificate-three: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ0ekNDQXN1Z0F3SUJBZ0lVQmJpTXNUeExjM0s4ODNWby9GTThsWXlOS2lFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQ...
      extra_ca_cert_certificate-two: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ0ekNDQXN1Z0F3SUJBZ0lVVFVPTXZ2YVdFOFRYV3djYTNoWlBCTnV2QjYwd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQ...
    kind: Secret
    metadata:
      creationTimestamp: null
      name: custom-ssl-config-bundle-secret
      namespace: <namespace>
    Copy to Clipboard Toggle word wrap

  4. 输入以下命令来创建 configBundleSecret 资源:

    $ oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    secret/extra-ca-certificate-config-bundle-secret created
    Copy to Clipboard Toggle word wrap

  5. 输入以下命令更新 QuayRegistry YAML 文件,以引用 extra-ca-certificate-config-bundle-secret 对象:

    $ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"extra-ca-certificate-config-bundle-secret"}}'
    Copy to Clipboard Toggle word wrap

    输出示例

    quayregistry.quay.redhat.com/example-registry patched
    Copy to Clipboard Toggle word wrap

  6. 输入以下命令来确保 QuayRegistry YAML 文件已更新为使用额外的 CA 证书 configBundleSecret 资源:

    $ oc get quayregistry <registry_name> -n <namespace> -o yaml
    Copy to Clipboard Toggle word wrap

    输出示例

    # ...
      configBundleSecret: extra-ca-certificate-config-bundle-secret
    # ...
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat