4.3. ロードバランシング用の SSL の設定

デフォルトでは、オーバークラウドはサービスに暗号化されていないエンドポイントを使用します。これは、オーバークラウドの設定に、エンドポイントに対して SSL/TLS を有効化するための追加の環境ファイルが必要であることを意味します。

注記

外部ロードバランサーに SSL 証明書とキーのコピーがインストールされていることを確認します。

内部ロードバランサーを持つオーバークラウドは、Heat テンプレートコレクションからの enable-tls.yaml 環境ファイルを使用して、鍵と証明書のペアをインストールします。外部ロードバランサーにはこのファイルは必要ありません。ただし、オーバークラウドには引き続き SSL/TLS エンドポイントの一覧が必要です。IP アドレスまたはドメイン名を使用してパブリックエンドポイントにアクセスするかどうかに応じて、以下の環境ファイルを使用します。

  • パブリックエンドポイントへのアクセスに DNS 名を使用する場合には、/usr/share/openstack-tripleo-heat-templates/environments/tls-endpoints-public-dns.yamlを使用します。
  • パブリックエンドポイントへのアクセスに IP アドレスを使用する場合には、/usr/share/openstack-tripleo-heat-templates/environments/tls-endpoints-public-ip.yamlを使用します。

自己署名証明書を使用するか、または証明書の署名者がオーバークラウドイメージのデフォルトのトラストストアにない場合は、その証明書をオーバークラウドイメージに挿入します。Heat テンプレートコレクションから inject-trust-anchor.yaml 環境ファイルをコピーします。

$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/.

このファイルを編集して、下記のパラメーターに以下の変更を加えます。

SSLRootCertificate

SSLRootCertificate パラメーターにルート認証局ファイルの内容をコピーします。以下に例を示します。

parameter_defaults:
  SSLRootCertificate: |
  -----BEGIN CERTIFICATE-----
  MIIDgzCCAmugAwIBAgIJAKk46qw6ncJaMA0GCSqGSIb3DQEBCwUAMFgxCzAJBgNV
  ...
  sFW3S2roS4X0Af/kSSD8mlBBTFTCMBAj6rtLBKLaQbIxEpIzrgvp
  -----END CERTIFICATE-----
重要

この認証局の内容に新しく追加する行は、すべて同じレベルにインデントする必要があります。

OS::TripleO::NodeTLSCAData

OS::TripleO::NodeTLSCAData:' のリソース URL を絶対 URL に変更します。

resource_registry:
  OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yaml

DNS ホスト名を使用して SSL/TLS でオーバークラウドにアクセスする場合には、新しい環境ファイル(~/templates/cloudname.yaml)を作成して、オーバークラウドのエンドポイントのホスト名を定義します。以下のパラメーターを使用してください。

CloudName
オーバークラウドエンドポイントの DNS ホスト名
DnsServers
使用する DNS サーバー一覧。設定済みの DNS サーバーには、パブリック API の IP と一致する設定済みの CloudName のエントリーが含まれている必要があります。

以下は、このファイルの内容の例です。

parameter_defaults:
 CloudName: overcloud.example.com
 DnsServers: 10.0.0.1

「オーバークラウドの作成」 のデプロイメントコマンド(openstack overcloud deploy)は、-e オプションを使用して環境ファイルを追加します。本項の環境ファイルは、以下の順序で追加します。

  • SSL/TLS エンドポイントが含まれる環境ファイル(tls-endpoints-public-dns.yaml または tls-endpoints-public-ip.yaml
  • DNS ホスト名を設定する環境ファイル (cloudname.yaml)
  • ルート認証局を注入する環境ファイル (inject-trust-anchor.yaml)

以下に例を示します。

$ openstack overcloud deploy --templates [...] -e /usr/share/openstack-tripleo-heat-templates/environments/tls-endpoints-public-dns.yaml -e ~/templates/cloudname.yaml -e ~/templates/inject-trust-anchor.yaml