Show Table of Contents
附录 A. SSL/TLS 证书配置
作为 第 4.6 节 “配置 director” 或 第 6.11 节 “在 Overcloud 中启用 SSL/TLS” 所介绍的操作的一个可选部分,您可以设置在 Undercloud 或 Overcloud 上使用 SSL/TLS 进行通讯。但是,如果使用一个自签发的证书,则需要一些特定的配置来使用这个证书。
复制默认的 OpenSSL 配置文件用来进行定制。
[stack@host1 ~]$ cp /etc/pki/tls/openssl.cnf .
编辑自定义的
openssl.cnf 文件,把 SSL 参数设置为被 director 使用。一个包括相关参数的示例如下:
[req] distinguished_name = req_distinguished_name req_extensions = v3_req [req_distinguished_name] countryName = Country Name (2 letter code) countryName_default = AU stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Queensland localityName = Locality Name (eg, city) localityName_default = Brisbane organizationalUnitName = Organizational Unit Name (eg, section) organizationalUnitName_default = Red Hat commonName = Common Name commonName_default = 192.168.0.1 commonName_max = 64 [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] IP.1 = 192.168.0.1 DNS.1 = instack.localdomain DNS.2 = vip.localdomain
重要
把
commonName_default 设置为 Public API 的 IP 地址,或 FQDN:
- 对于 Undercloud,使用
undercloud.conf中的undercloud_public_vip参数。如果这个 IP 地址使用了一个 FQDN,则使用这个 FQDN。
- 对于 Overcloud,使用 Public API 的 IP 地址(您的网络分离环境文件中的
ExternalAllocationPools参数的第一个地址)。如果这个 IP 地址使用了一个 FQDN,则使用这个 FQDN。
在
alt_names 部分包括相同的 Public API IP 地址作为 IP 项。如果还使用 DNS,在相同的部分包括服务器的主机名作为 DNS 项。如需了解更多与 openssl.cnf 相关的信息,请运行 man openssl.cnf。
运行以下命令产生密钥对:
$ openssl genrsa -out server-key.pem 2048 $ openssl req -new -x509 -key server-key.pem -out server-cert.pem -days 3650 -config ~/openssl.cnf
使用这个密钥为 Undercloud 或 Overcloud 创建一个 SSL/TLS 证书。
对于 Undercloud:
运行以下命令创建证书:
$ cat server-cert.pem server-key.pem > undercloud.pem
重要
openssl req 命令会要求输入证书的一些详细信息,包括 Common Name。把 Common Name 设置为 Public API 的 IP 地址。openssl.cnf 文件会使用这个 IP 地址作为默认值。
这会创建一个
undercloud.pem 文件来和 undercloud_service_certificate 选项一起使用。另外,这个文件还需要一个特殊的 SELinux context,从而使 HAProxy 工具可以读取它。请参照以下示例:
$ sudo mkdir /etc/pki/instack-certs $ sudo cp ~/undercloud.pem /etc/pki/instack-certs/. $ sudo semanage fcontext -a -t etc_t "/etc/pki/instack-certs(/.*)?" $ sudo restorecon -R /etc/pki/instack-certs
把这个证书添加到 Undercloud 的信任证书授权(CA)列表中:
$ sudo cp server-cert.pem /etc/pki/ca-trust/source/anchors/ $ sudo update-ca-trust extract
对于 Overcloud:
和 第 6.11 节 “在 Overcloud 中启用 SSL/TLS” 中的
enable-tls.yaml 文件一起使用证书。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.