スーパーバイザー は、スーパーバイザー と NSX 間の通信に TLS を使用します。NSX ネットワーク スタックを使用して スーパーバイザー をデプロイした場合、さまざまな NSX 証明書でローテーションが必要になる可能性があります。
スーパーバイザー で使用される NSX 証明書
NSX を使用する WCP では、NSX との統合に 2 つの証明書が使用されます。
- NSX ロード バランサの証明書とキー
- NSX Manager の証明書とキー
これらの証明書の詳細については、『
NSX 管理ガイド』の
NSX フェデレーションの証明書を参照してください。
注: このトピックの情報は、NSX v3.2 に基づいています。
NSX ロード バランサの証明書とキーのローテーション
- の順に選択して、証明書を生成します。
- の順に選択して、証明書とキーを更新します。
各 NSX Manager ノードの自己署名証明書とキーの生成
スーパーバイザー は、エンタープライズ管理者アカウントを使用して NSX Manager API にアクセスします。NSX Manager 証明書が期限切れになると、スーパーバイザー は NSX にアクセスできなくなります。
NSX Manager 証明書が期限切れになった場合は、
スーパーバイザー ログを確認してください。
tail -f /var/log/vmware/wcp/wcpsvc.log
次のようなエラーが記録されることがあります。
error wcp [kubelifecycle/nsx_pi.go:47] ... Error creating WCP service principal identity. Err: NSX service-wide principal identity creation failed: ... x509: certificate has expired
error wcp [kubelifecycle/controller.go:554] ... Failed to create WCP service PI in NSX. Err: WCP service principal idenitity creation failed: NSX service-wide principal identity creation failed: ... x509: certificate has expired
この問題を解決するには、各 NSX Manager ノードの証明書とキーを更新します。VIP アドレスを持つ 3 ノード NSX 管理クラスタを使用している場合、スーパーバイザー では VIP アドレスが使用されないことに注意してください。つまり、各 NSX Manager ノードで各証明書をローテーションする必要があります。VIP 証明書のみを置き換えて証明書をローテーションすることはできません。
- NSX Manager ノードの証明書をローテーションするには、指定された証明書署名要求を作成し、以下の内容をポピュレートします。
ここで、
NSX-MGR-IP-ADDRESS
は NSX Manager の IP アドレスNSX-MGR-FQDN
は、NSX Manager の FQDN または IP アドレス
nsx-mgr-01-cert.cnf
[ req ] default_bits = 2048 default_md = sha256 prompt = no distinguished_name = req_distinguished_name x509_extensions = SAN req_extensions = v3_ca [ req_distinguished_name ] countryName = US stateOrProvinceName = California localityName = CA organizationName = NSX commonName = NSX-MGR-IP-ADDRESS #CAN ONLY USE IF SAN IS ALSO USED [ SAN ] basicConstraints = CA:false subjectKeyIdentifier = hash authorityKeyIdentifier=keyid:always,issuer:always [ v3_ca ] subjectAltName = DNS:NSX-MGR-FQDN,IP:NSX-MGR-IP-ADDRESS #MUST USE
例:[ req ] default_bits = 2048 default_md = sha256 prompt = no distinguished_name = req_distinguished_name x509_extensions = SAN req_extensions = v3_ca [ req_distinguished_name ] countryName = US stateOrProvinceName = California localityName = CA organizationName = NSX commonName = 10.197.79.122 [ SAN ] basicConstraints = CA:false subjectKeyIdentifier = hash authorityKeyIdentifier=keyid:always,issuer:always [ v3_ca ] subjectAltName = DNS:10.197.79.122,IP:10.197.79.122
- OpenSSL を使用して SSL 証明書とプライベート キーを生成します。
openssl req -newkey rsa -nodes -days 1100 -x509 -config nsx-mgr-01-cert.cnf -keyout nsx-mgr-01.key -out nsx-mgr-01.crt
- コマンドを実行した後に、次の出力が表示されることを確認します。
Generating a 2048 bit RSA private key ...............+++ ................+++ writing new private key to 'nsx-mgr-01.key'
- 署名要求を実行すると、最初の署名要求、証明書とプライベート キーの 3 つのファイルが生成されます。
- 次のコマンドを実行して、証明書とプライベート キーを確認します。
openssl x509 -in nsx-mgr-01.crt -text -noout
- マルチノード NSX 管理クラスタを使用している場合は、NSX Manager ノードごとにこのプロセスを繰り返します。証明書署名要求に含まれる IP アドレスと FQDN および出力ファイル名を適宜変更します。
NSX-T 管理コンソールへの SSL 証明書とプライベート キーのインポート
次の手順を実行して、各 NSX Manager ノードの証明書とプライベート キーを NSX にインポートします。
nsx.crt
および
nsx.key
ファイルをローカルに保存する場合は、ファイルを NSX にアップロードするか、内容をコピーして貼り付けます。
- NSX 管理コンソールにログインし、 画面に移動します。
- 注: 自己署名証明書を生成した後で、 [CA 証明書のインポート] ではなく [証明書のインポート] を選択してください。
をクリックします。
- 証明書とキー ペア(
nsx-mgr-01-cert-and-key
など)にわかりやすい [名前] を入力します。 - 証明書ファイルを参照して選択するか、ヘッダーやフッターなどの内容をコピーして貼り付けます。
例:
-----BEGIN CERTIFICATE----- MIID+zCCAuOgAwIBAgIUCfXaWxNwXvrEFQbt+Dvvp9C/UkIwDQYJKoZIhvcNAQEL BQAwVTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExCzAJBgNVBAcM ... FGlnyT4vxpa2TxvXNTCuXPV9z0VtVBF2QpUJluGH7W1i2wUnApCCXhItcBkfve0f pCi9YoRoUT8fuMBYo7sL -----END CERTIFICATE-----
- キーを参照して選択するか、ヘッダーやフッターなどの内容をコピーして貼り付けます。
例:
-----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5GNlUSYHa1p+E XuOGAsIgiFxUnerRYNm2ARMqRb/xKK6R4xgZhBmpmikpE90vQibvouHqnL13owq7 ... OzbnwMCUI2TeY1iJNx3HNKUrdLvrr8CMh7Looe0L4/2j7ygew2x2C5m272SCJYs/ ly+bOXEYaH4/ORHbvvr0jQ== -----END PRIVATE KEY-----
- [サービス証明書] オプションに対して [いいえ] を選択します。
- 証明書とキー ペア(
Cert and Private Key for NSX Manager Node 1
など)に説明を入力します。 - [インポート] をクリックします。
- NSX Manager の証明書とキーのペアごとに、このプロセスを繰り返します。
NSX API を使用した NSX Manager 証明書の登録
証明書とキーを NSX Manager にアップロードした後に、NSX API を使用して登録します。『
NSX 管理ガイド』の
証明書のインポートと置き換えも参照してください。
- NSX Manager で、 の順に選択します。
- [ID] 列で、登録する証明書の ID を選択し、ポップアップ ウィンドウから証明書 ID をコピーします。
- 次の API 呼び出しを実行して、証明書を一覧表示します。更新する証明書ごとに証明書ノード ID を取得します。
GET https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates
- 次の API 呼び出しを実行して、証明書を検証します。
GET https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>?action=validate
例:https://10.19.92.133/api/v1/trust-management/certificates/070bae44-7548-45ff-a884-578f079eb6d4?action=validate
- 次の API 呼び出しを実行して、NSX Manager ノードの証明書を置き換えます。
POST https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>? action=apply_certificate&service_type=API&node_id=<node-id>
例:POST https://10.19.92.133/api/v1/trust-management/certificates/070bae44-7548-45ff-a884-578f079eb6d4? action=apply_certificate&service_type=API&node_id=e61c7537-3090-4149-b2b6-19915c20504f
- マルチノード NSX 管理クラスタを使用している場合は、NSX Manager ノードごとに証明書置き換えプロセスを繰り返します。
- 完了したら、置き換えた期限切れの各証明書を削除します。この操作は、NSX Manager インターフェイスまたは NSX API を使用して実行できます。
例:
https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>