第 12 章 在 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文件,即使您没有进行任何配置更改。
12.1. 创建证书颁发机构 复制链接链接已复制到粘贴板!
使用以下步骤设置您自己的 CA,并使用它来为您的域发布服务器证书。这可让您使用自己的证书保护与 SSL/TLS 的通信。
流程
输入以下命令生成 root CA 密钥:
openssl genrsa -out rootCA.key 2048
$ openssl genrsa -out rootCA.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令生成 root CA 证书:
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入要合并到证书请求中的信息,包括服务器主机名,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令生成服务器密钥:
openssl genrsa -out ssl.key 2048
$ openssl genrsa -out ssl.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令生成签名请求:
openssl req -new -key ssl.key -out ssl.csr
$ openssl req -new -key ssl.key -out ssl.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入要合并到证书请求中的信息,包括服务器主机名,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建配置文件
openssl.cnf,指定服务器主机名,例如:openssl.cnf文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置文件生成证书
ssl.cert:openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnf
$ openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令确认您的创建证书和密钥:
ls /path/to/certificates
$ ls /path/to/certificatesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
rootCA.key ssl-bundle.cert ssl.key custom-ssl-config-bundle-secret.yaml rootCA.pem ssl.cert openssl.cnf rootCA.srl ssl.csr
rootCA.key ssl-bundle.cert ssl.key custom-ssl-config-bundle-secret.yaml rootCA.pem ssl.cert openssl.cnf rootCA.srl ssl.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow