7.12. 创建 undercloud CA 信任的环境文件

如果您的 undercloud 使用 TLS,而证书颁发机构 (CA) 未获得公开信任,可将此 CA 用于 undercloud 操作的 SSL 端点加密。为确保其余部署可以访问 undercloud 端点,请将您的 overcloud 节点配置成信任 undercloud CA。

注意

要使这种方法奏效,overcloud 节点必须有一个指向 undercloud 公共端点的网络路由。依赖于脊叶型网络的部署可能必须应用这种配置。

有两种自定义证书可用于 undercloud:

  • 用户提供的证书 - 当您自行提供证书时,会应用此定义。证书可能来自于您自己的 CA,也可能是自签名的。这通过使用 undercloud_service_certificate 选项来传递。在这种情况下,您必须信任自签名证书,或 CA(具体取决于您的部署)。
  • 自动生成的证书 - 当您通过 certmonger 生成使用自己的本地 CA 的证书时,会应用此定义。使用 undercloud.conf 文件中的 generate_service_certificate 选项启用自动生成的证书。在这种情况下,director 在 /etc/pki/ca-trust/source/anchors/cm-local-ca.pem 生成 CA 证书,并配置 undercloud 的 HAProxy 实例以使用服务器证书。将 CA 证书添加到 inject-trust-anchor-hiera.yaml 文件中以将其呈现给 OpenStack Platform。

本例中使用了位于 /home/stack/ca.crt.pem 的一个自签名证书。如果您使用自动生成的证书,请改为使用 /etc/pki/ca-trust/source/anchors/cm-local-ca.pem

步骤

  1. 打开证书文件,仅复制证书部分。不要包括其密钥:

    $ vi /home/stack/ca.crt.pem

    您需要的证书部分与下方简写的示例类似:

    -----BEGIN CERTIFICATE-----
    MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV
    BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH
    UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3
    -----END CERTIFICATE-----
  2. 创建一个名为 /home/stack/inject-trust-anchor-hiera.yaml 的 YAML 文件,其包含下列内容以及您从 PEM 文件复制而来的证书:

    parameter_defaults:
      CAMap:
        undercloud-ca:
          content: |
            -----BEGIN CERTIFICATE-----
            MIIDlTCCAn2gAwIBAgIJAOnPtx2hHEhrMA0GCSqGSIb3DQEBCwUAMGExCzAJBgNV
            BAYTAlVTMQswCQYDVQQIDAJOQzEQMA4GA1UEBwwHUmFsZWlnaDEQMA4GA1UECgwH
            UmVkIEhhdDELMAkGA1UECwwCUUUxFDASBgNVBAMMCzE5Mi4xNjguMC4yMB4XDTE3
            -----END CERTIFICATE-----
注意

证书字符串必须采用 PEM 格式。

注意

CAMap 参数可能包含其他与 SSL/TLS 配置相关的证书。

在部署 overcloud 的过程中,director 将 CA 证书复制到每个 overcloud 节点。因此,每个节点都会信任 undercloud 的 SSL 端点提供的加密。有关环境文件的详情请参考 第 7.16 节 “在 overcloud 部署中包括环境文件”