2.3. 使用单个自定义证书为公共服务更新 control plane
您可能需要使用自己的内部证书颁发机构(CA)保护公共 API。要将自动生成的路由证书替换为来自您的 CA 的通用证书,您必须创建一个包含 CA 证书的 secret,以及信任链中的所有证书。
先决条件
-
您有每个公共服务的列表,用于应用您的自定义服务证书。您可以使用
oc route list -n openstack命令获取此列表。将此信息用于证书的 DNS 名称,并在openstack_control_plane.yaml自定义资源(CR)中查找要编辑的相关服务。
流程
在
alt_names部分中创建一个包含每个服务的主机名的签名证书:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
cacerts.yaml的清单文件,其中包含所有 CA 证书。如果需要,在信任链中包括所有证书:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从清单文件创建 secret:
oc apply -f cacerts.yaml
oc apply -f cacerts.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为名为
certificate-secret.yaml的 secret 创建清单文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 secret
oc apply -f certificate-secret.yaml
oc apply -f certificate-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
openstack_control_plane.yaml自定义资源,并将捆绑包添加为caBundleSecretName的参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 secret 服务证书应用到
apiOverride字段中的每个公共服务。例如,为 Identity 服务(keystone)输入以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compute 服务(nova)和
NoVNCProxy的编辑如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用 control plane 更改
oc apply -f openstack_control_plane.yaml
oc apply -f openstack_control_plane.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow