3.4. 使用配置捆绑包配置自定义 SSL/TLS 证书

您可以在初始部署前配置自定义 SSL/TLS 证书,或者在 OpenShift Container Platform 上部署 Red Hat Quay 后配置。这可以通过创建或更新配置捆绑包 secret 来完成。

如果要将证书添加到现有部署中,则必须在新配置捆绑包 secret 中包含现有的 config.yaml 文件,即使您没有进行任何更改。

使用以下步骤添加自定义 SSL/TLS 证书。

流程

  1. QuayRegistry YAML 文件中,将 kind: tls 设置为 managed:false,例如:

      - kind: tls
        managed: false
  2. 导航到 Events 页面,这应该显示更改被阻止,直到您设置适当的配置为止。例如:

        - lastTransitionTime: '2022-03-28T12:56:49Z'
          lastUpdateTime: '2022-03-28T12:56:49Z'
          message: >-
            required component `tls` marked as unmanaged, but `configBundleSecret`
            is missing necessary fields
          reason: ConfigInvalid
          status: 'True'
  3. 使用嵌入式数据或使用文件创建 secret。

    1. 直接将配置详情嵌入到 Secret 资源 YAML 文件中。例如:

      custom-ssl-config-bundle.yaml

      apiVersion: v1
      kind: Secret
      metadata:
        name: custom-ssl-config-bundle-secret
        namespace: quay-enterprise
      data:
        config.yaml: |
          FEATURE_USER_INITIALIZE: true
          BROWSER_API_CALLS_XHR_ONLY: false
          SUPER_USERS:
          - quayadmin
          FEATURE_USER_CREATION: false
          FEATURE_QUOTA_MANAGEMENT: true
          FEATURE_PROXY_CACHE: true
          FEATURE_BUILD_SUPPORT: true
          DEFAULT_SYSTEM_REJECT_QUOTA_BYTES: 102400000
        extra_ca_cert_my-custom-ssl.crt: |
          -----BEGIN CERTIFICATE-----
          MIIDsDCCApigAwIBAgIUCqlzkHjF5i5TXLFy+sepFrZr/UswDQYJKoZIhvcNAQEL
          BQAwbzELMAkGA1UEBhMCSUUxDzANBgNVBAgMBkdBTFdBWTEPMA0GA1UEBwwGR0FM
          ....
          -----END CERTIFICATE-----

    2. 从 YAML 文件创建 secret:

      $ oc create  -f custom-ssl-config-bundle.yaml

      ..

  4. 另外,您可以创建包含所需信息的文件,然后从这些文件创建 secret。

    1. 输入以下命令创建一个包含 config.yaml 文件和 custom-ssl.crt 文件的通用 Secret 对象:

      $ oc create secret generic custom-ssl-config-bundle-secret \
        --from-file=config.yaml \
        --from-file=extra_ca_cert_my-custom-ssl.crt=my-custom-ssl.crt
    2. 创建或更新 QuayRegistry YAML 文件,引用创建的 Secret,例如:

      QuayRegistry YAML 文件示例

      apiVersion: quay.redhat.com/v1
      kind: QuayRegistry
      metadata:
        name: example-registry
        namespace: quay-enterprise
      spec:
        configBundleSecret: custom-ssl-config-bundle-secret

    3. 输入以下命令使用 YAML 文件部署或更新 registry:

      oc apply -f quayregistry.yaml