スーパーバイザー は、スーパーバイザー と NSX 間の通信に TLS を使用します。NSX ネットワーク スタックを使用して スーパーバイザー をデプロイした場合、さまざまな NSX 証明書でローテーションが必要になる可能性があります。

スーパーバイザー で使用される NSX 証明書

NSX を使用する WCP では、NSX との統合に 2 つの証明書が使用されます。
  • NSX ロード バランサの証明書とキー
  • NSX Manager の証明書とキー
これらの証明書の詳細については、『 NSX 管理ガイド』の NSX フェデレーションの証明書を参照してください。
注: このトピックの情報は、NSX v3.2 に基づいています。

NSX ロード バランサの証明書とキーのローテーション

[スーパーバイザー] > [証明書] > [NSX ロード バランサ] 画面で、NSX ロード バランサの TLS 証明書とキーをローテーションできます。
  • [アクション] > [CSR の生成] の順に選択して、証明書を生成します。
  • [アクション] > [証明書の置き換え] の順に選択して、証明書とキーを更新します。

各 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 証明書のみを置き換えて証明書をローテーションすることはできません。

  1. 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
  2. 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
    
  3. コマンドを実行した後に、次の出力が表示されることを確認します。
    Generating a 2048 bit RSA private key
    ...............+++
    ................+++
    writing new private key to 'nsx-mgr-01.key'
    
  4. 署名要求を実行すると、最初の署名要求、証明書とプライベート キーの 3 つのファイルが生成されます。
  5. 次のコマンドを実行して、証明書とプライベート キーを確認します。
    openssl x509 -in nsx-mgr-01.crt -text -noout
  6. マルチノード NSX 管理クラスタを使用している場合は、NSX Manager ノードごとにこのプロセスを繰り返します。証明書署名要求に含まれる IP アドレスと FQDN および出力ファイル名を適宜変更します。

NSX-T 管理コンソールへの SSL 証明書とプライベート キーのインポート

次の手順を実行して、各 NSX Manager ノードの証明書とプライベート キーを NSX にインポートします。 nsx.crt および nsx.key ファイルをローカルに保存する場合は、ファイルを NSX にアップロードするか、内容をコピーして貼り付けます。
  1. NSX 管理コンソールにログインし、[システム] > [証明書] 画面に移動します。
  2. [インポート] > [証明書のインポート] をクリックします。
    注: 自己署名証明書を生成した後で、 [CA 証明書のインポート] ではなく [証明書のインポート] を選択してください。
  3. 証明書とキー ペア(nsx-mgr-01-cert-and-key など)にわかりやすい [名前] を入力します。
  4. 証明書ファイルを参照して選択するか、ヘッダーやフッターなどの内容をコピーして貼り付けます。

    例:

    -----BEGIN CERTIFICATE-----
    MIID+zCCAuOgAwIBAgIUCfXaWxNwXvrEFQbt+Dvvp9C/UkIwDQYJKoZIhvcNAQEL
    BQAwVTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExCzAJBgNVBAcM
    ...
    FGlnyT4vxpa2TxvXNTCuXPV9z0VtVBF2QpUJluGH7W1i2wUnApCCXhItcBkfve0f
    pCi9YoRoUT8fuMBYo7sL
    -----END CERTIFICATE-----
  5. キーを参照して選択するか、ヘッダーやフッターなどの内容をコピーして貼り付けます。

    例:

    -----BEGIN PRIVATE KEY-----
    MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5GNlUSYHa1p+E
    XuOGAsIgiFxUnerRYNm2ARMqRb/xKK6R4xgZhBmpmikpE90vQibvouHqnL13owq7
    ...
    OzbnwMCUI2TeY1iJNx3HNKUrdLvrr8CMh7Looe0L4/2j7ygew2x2C5m272SCJYs/
    ly+bOXEYaH4/ORHbvvr0jQ==
    -----END PRIVATE KEY-----
  6. [サービス証明書] オプションに対して [いいえ] を選択します。
  7. 証明書とキー ペア(Cert and Private Key for NSX Manager Node 1 など)に説明を入力します。
  8. [インポート] をクリックします。
  9. NSX Manager の証明書とキーのペアごとに、このプロセスを繰り返します。

NSX API を使用した NSX Manager 証明書の登録

証明書とキーを NSX Manager にアップロードした後に、NSX API を使用して登録します。『 NSX 管理ガイド』の 証明書のインポートと置き換えも参照してください。
  1. NSX Manager で、[システム] > [証明書] の順に選択します。
  2. [ID] 列で、登録する証明書の ID を選択し、ポップアップ ウィンドウから証明書 ID をコピーします。
  3. 次の API 呼び出しを実行して、証明書を一覧表示します。更新する証明書ごとに証明書ノード ID を取得します。
    GET https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates
  4. 次の 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
  5. 次の 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
  6. マルチノード NSX 管理クラスタを使用している場合は、NSX Manager ノードごとに証明書置き換えプロセスを繰り返します。
  7. 完了したら、置き換えた期限切れの各証明書を削除します。この操作は、NSX Manager インターフェイスまたは NSX API を使用して実行できます。
    例:
    https://NSX-MGR-IP-or-FQDN/api/v1/trust-management/certificates/<cert-id>