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. 下载现有配置
以下流程演示了如何通过查找 Config Bundle Secret
来下载现有配置。
流程
输入以下命令描述
QuayRegistry
资源:$ oc describe quayregistry -n <quay_namespace>
# ... Config Bundle Secret: example-registry-config-bundle-v123x # ...
输入以下命令来获取 secret 数据:
$ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'
输出示例
{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }
输入以下命令解码数据:
$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode
输出示例
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
可选。您可以通过传递 >>
config.yaml
标志,将数据导出到当前目录中。例如:$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
3.2.2. 在 OpenShift Container Platform 上的 Red Hat Quay 中添加额外的证书颁发机构
以下示例演示了如何在 OpenShift Container Platform 部署的 Red Hat Quay 中添加额外的证书颁发机构。
先决条件
-
您有 base64 将原始配置捆绑包解码为一个
config.yaml
文件。如需更多信息 ,请参阅下载现有配置。 - 您有一个证书颁发机构(CA)文件或文件。
流程
创建新的 YAML 文件,如
extra-ca-certificate-config-bundle-secret.yaml
:$ touch extra-ca-certificate-config-bundle-secret.yaml
创建
extra-ca-certificate-config-bundle-secret
资源。运行以下命令来创建资源:
$ 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
可选。您可以输入以下命令来检查
extra-ca-certificate-config-bundle-secret.yaml
文件的内容:$ cat extra-ca-certificate-config-bundle-secret.yaml
输出示例
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>
输入以下命令来创建
configBundleSecret
资源:$ oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yaml
输出示例
secret/extra-ca-certificate-config-bundle-secret created
输入以下命令更新
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"}}'
输出示例
quayregistry.quay.redhat.com/example-registry patched
输入以下命令来确保
QuayRegistry
YAML 文件已更新为使用额外的 CA 证书configBundleSecret
资源:$ oc get quayregistry <registry_name> -n <namespace> -o yaml
输出示例
# ... configBundleSecret: extra-ca-certificate-config-bundle-secret # ...