1.3. 在 OpenShift Container Platform 中为 Red Hat Quay 配置自定义 SSL/TLS 证书
当在 OpenShift Container Platform 上部署 Red Hat Quay 时,QuayRegistry 自定义资源定义(CRD)的 tls
组件会被默认设置为 managed
。因此,OpenShift Container Platform 的证书颁发机构用于创建 HTTPS 端点并轮转 SSL/TLS 证书。
您可以在 OpenShift Container Platform 上的 Red Hat Quay 初始部署前或之后配置自定义 SSL/TLS 证书。这个过程涉及在 QuayRegistry
YAML 文件中创建或更新 configBundleSecret
资源,以集成您的自定义证书,并将 tls
组件设置为 unmanaged
。
为 Red Hat Quay 配置自定义 SSL/TLS 证书时,管理员负责证书轮转。
以下流程允许您应用自定义 SSL/TLS 证书,以确保安全通信,并满足 OpenShift Container Platform 部署中的 Red Hat Quay 的特定安全要求。这些步骤假设您已创建了证书颁发机构(CA)捆绑包或 ssl.key
,以及 ssl.cert
。然后,流程演示了如何将这些文件集成到 OpenShift Container Platform 部署的 Red Hat Quay 中,以确保 registry 使用指定的安全设置,并符合机构的 SSL/TLS 策略。
-
以下流程用于使用 HTTPS 证书保护 Red Hat Quay。请注意,这与管理证书颁发机构信任捆绑包不同。CA Trust Bundles 由
Quay
容器中的系统进程用来根据可信 CA 验证证书,并确保 LDAP、存储后端和 OIDC 连接等服务是可信的。 -
如果要将证书添加到现有部署中,则必须在新配置捆绑包 secret 中包含现有
config.yaml
文件,即使您没有进行任何配置更改。
1.3.1. 创建自定义 SSL/TLS configBundleSecret 资源 复制链接链接已复制到粘贴板!
在创建自定义 SSL/TLS 证书后,您可以在 OpenShift Container Platform 上为 Red Hat Quay 创建自定义 configBundleSecret
资源,允许您上传 ssl.cert
和 ssl.key
文件。
先决条件
-
您有 base64 将原始配置捆绑包解码为一个
config.yaml
文件。如需更多信息 ,请参阅下载现有配置。 - 您已生成了自定义 SSL 证书和密钥。
流程
创建新的 YAML 文件,如
custom-ssl-config-bundle-secret.yaml
:touch custom-ssl-config-bundle-secret.yaml
$ touch custom-ssl-config-bundle-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
custom-ssl-config-bundle-secret
资源。运行以下命令来创建资源:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 其中
<config.yaml&
gt; 是您的base64 解码
的config.yaml
文件。 - 2
- 其中
<ssl.cert&
gt; 是您的ssl.cert
文件。 - 3
- 可选。
--from-file=extra_ca_cert_<name-of-certificate>.crt=ca-certificate-bundle.crt
字段允许 Red Hat Quay 识别自定义证书颁发机构(CA)文件。如果您使用使用自定义 CA 的 LDAP、OIDC 或者其它服务,您必须通过extra_ca_cert
路径添加它们。如需更多信息,请参阅"在 OpenShift Container Platform 上向 Red Hat Quay 添加其他证书颁发机构"。 - 4
- 其中
<ssl.key&
gt; 是您的ssl.key
文件。
可选。您可以输入以下命令来检查
custom-ssl-config-bundle-secret.yaml
文件的内容:cat custom-ssl-config-bundle-secret.yaml
$ cat custom-ssl-config-bundle-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来创建
configBundleSecret
资源:oc create -n <namespace> -f custom-ssl-config-bundle-secret.yaml
$ oc create -n <namespace> -f custom-ssl-config-bundle-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
secret/custom-ssl-config-bundle-secret created
secret/custom-ssl-config-bundle-secret created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令更新
QuayRegistry
YAML 文件来引用custom-ssl-config-bundle-secret
对象:oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"custom-ssl-config-bundle-secret"}}'
$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"custom-ssl-config-bundle-secret"}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令将
QuayRegistry
YAML 的tls
组件设置为false
:oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"components":[{"kind":"tls","managed":false}]}}'
$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"components":[{"kind":"tls","managed":false}]}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来确保
QuayRegistry
YAML 文件已更新为使用自定义 SSLconfigBundleSecret
资源,并且您的 和tls
资源已设置为false
:oc get quayregistry <registry_name> -n <namespace> -o yaml
$ oc get quayregistry <registry_name> -n <namespace> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
输入以下命令确认到服务器和端口的 TLS 连接:
openssl s_client -connect <quay-server.example.com>:443
$ openssl s_client -connect <quay-server.example.com>:443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow