12.2. TLS 用于公共端点 DNS 名称
要引用公共端点 DNS 名称,请将证书添加到 openstackclient pod。
前提条件
- 按照 overcloud 公共端点启用 SSL/TLS 的步骤,按照流程创建证书颁发机构、密钥和证书。
流程
创建
ConfigMap来存储 CA 证书。ConfigMap是使用 OpenStackControlPlane 对象向openstackclientpod 添加额外 CA 证书的接口:apiVersion: v1 kind: ConfigMap metadata: name: cacerts namespace: openstack data: local_CA: | -----BEGIN CERTIFICATE----- … -----END CERTIFICATE----- another_CA: | -----BEGIN CERTIFICATE----- … -----END CERTIFICATE-----创建 OpenStackControlPlane 并引用
ConfigMap:apiVersion: osp-director.openstack.org/v1beta2 kind: OpenStackControlPlane metadata: name: <overcloud> namespace: openstack spec: caConfigMap: cacerts-
将
<overcloud> 替换为您的堆栈的名称。
-
将
在
~/custom_environment_files目录中,创建一个名为tls-certs.yaml的文件,其中包含使用SSLCertificate、SSLIntermediateCertificate、SSLKey和CAMap参数的部署生成的证书。注意有关创建证书文件的更多信息,请参阅启用 SSL/TLS。
更新
heatEnvConfigMap,以添加tls-certs.yaml文件:$ oc create configmap -n openstack heat-env-config --from-file=~/custom_environment_files/ --dry-run=client -o yaml | oc apply -f -创建 OpenStackConfigGenerator 并添加所需的
heatEnvs配置文件,以便为公共端点 DNS 名称配置 TLS:apiVersion: osp-director.openstack.org/v1beta1 kind: OpenStackConfigGenerator … spec: … heatEnvs: - ssl/tls-endpoints-public-dns.yaml - ssl/enable-tls.yaml … heatEnvConfigMap: heat-env-config tarballConfigMap: tripleo-tarball-config创建 OpenStackConfigGenerator 和新的 OpenStackConfigVersion,使用 OpenStackDeploy 资源针对 overcloud 运行 Ansible playbook: