インポートした CA 署名付き証明書が期限切れになっています。

問題

NSX Manager アプライアンス ホストにインポートした CA 署名付き証明書が期限切れになっているため、NSX Application Platform の使用を継続できません。NSX Application Platform とそこでホストする NSX 機能の使用を継続するには、自己署名の CA 署名付き証明書を委任する必要があります。

原因

CA 署名付き証明書のデフォルトの有効期限は 825 日です。システムの自己署名の証明書は自動的に更新されます。カスタム CA 署名付き証明書をインポートする場合は、その証明書のライフサイクルを維持する必要があります。更新し忘れた場合、NSX Application PlatformNSX Manager Unified Appliance との間の接続が切断され、NSX Application Platform とそこでホストする NSX 機能の使用を継続できなくなります。

解決方法

  1. root ユーザーとして NSX Manager アプライアンスにログインします。
  2. NSX Manager コマンド プロンプトで次の kubectl コマンドを使用して、自己署名の CA 署名付き証明書に委任します。
    system prompt> kubectl patch certificate ca-cert -n cert-manager --type='json' -p='[{"op": "replace", "path": "/spec/secretName", "value":"ca-key-pair"}]'
  3. 約 30 秒経ったら egress 証明書をエクスポートします。次の kubectl コマンドと cat コマンドを NSX Manager システム プロンプトに、1 つずつ入力します。
    system prompt> kubectl get secret -n nsxi-platform egress-tls-cert -o=jsonpath='{.data.tls\.crt}' | base64 -d - > tls.crt
    system prompt> kubectl get secret -n nsxi-platform egress-tls-cert -o=jsonpath='{.data.ca\.crt}' | base64 -d - > ca.crt
    system prompt> cat tls.crt ca.crt > egress.crt
  4. ユーザー インターフェイスを使用して egress.crtNSX Manager アプライアンスにインポートし、証明書 UUID を取得します。
    1. ブラウザから、エンタープライズ管理者の権限で NSX Manager (https://<nsx-manager-ip-address>) にログインします。
    2. [システム] > [証明書] の順に移動して [インポート] をクリックし、ドロップダウン メニューから [証明書] を選択します。
    3. 証明書の名前を入力します。
    4. [サービス証明書][なし] に設定します。
    5. [証明書の内容] テキスト ボックスに、前の手順で作成した egress.crt ファイルの内容を貼り付けます。
    6. [保存] をクリックします。
    7. [証明書] テーブルで、新しく追加された証明書の行を展開し、証明書 ID の値をコピーします。
  5. NSX Manager アプライアンスの root ユーザー セッションに戻って、システム プロンプトで次の curl コマンドを使用して、プリンシパル ID cloudnative_platform_egress UUID を取得します。
    system prompt> curl -ku 'admin:yourAdminPassword' https://127.0.0.1/api/v1/trust-management/principal-identities
  6. システム プロンプトで次の curl コマンドを使用して、プリンシパル ID と、インポートした証明書 ID とをバインドします。
    curl -ku 'admin:yourAdminPassword' https://127.0.0.1/api/v1/trust-management/principal-identities?action=update_certificate -X POST -H "Content-Type: application/json" -H "X-Allow-Overwrite: true" -d '{"principal_identity_id": "<PI-UUID>", "certificate_id": "<EGRESS-CERT-ID>"}'