11.5. カスタムマスターホスト証明書の設定
OpenShift Container Platform の外部ユーザーとの信頼できる接続を容易にするために、Ansible インベントリーファイル
(デフォルトでは /etc/ansible/hosts) の openshift_master_cluster_public_hostname
パラメーターで指定されたドメイン名に一致する名前付き証明書をプロビジョニングできます。
この証明書は Ansible がアクセスできるディレクトリーに置き、以下のように Ansible インベントリーファイルにパスを追加する必要があります。
openshift_master_named_certificates=[{"certfile": "/path/to/console.ocp-c1.myorg.com.crt", "keyfile": "/path/to/console.ocp-c1.myorg.com.key", "names": ["console.ocp-c1.myorg.com"]}]
パラメーター値は以下のようになります。
- certfile は、OpenShift Container Platform カスタムマスター API 証明書を含むファイルへのパスです。
- keyfile は、OpenShift Container Platform カスタムマスター API 証明書キーを含むファイルへのパスです。
- names は、クラスターのパブリックホスト名です。
ファイルパスは、Ansible が実行されるシステムにとってローカルでなければなりません。証明書はマスターホストにコピーされ、/etc/origin/master ディレクトリー内にデプロイされます。
レジストリーのセキュリティーを保護する場合、サービスのホスト名と IP アドレスをレジストリーのサーバー証明書に追加します。SAN (Subject Alternative Name) には以下の情報が含まれている必要があります。
2 つのサービスホスト名。
docker-registry.default.svc.cluster.local docker-registry.default.svc
サービス IP アドレス。
以下に例を示します。
172.30.252.46
以下のコマンドを使ってコンテナーイメージレジストリーのサービス IP アドレスを取得します。
oc get service docker-registry --template='{{.spec.clusterIP}}'
パブリックホスト名。
docker-registry-default.apps.example.com
以下のコマンドを使ってコンテナーイメージレジストリーのパブリックホスト名を取得します。
oc get route docker-registry --template '{{.spec.host}}'
たとえば、サーバー証明書には以下のような SAN の詳細が記載されるはずです。
X509v3 Subject Alternative Name: DNS:docker-registry-public.openshift.com, DNS:docker-registry.default.svc, DNS:docker-registry.default.svc.cluster.local, DNS:172.30.2.98, IP Address:172.30.2.98