インポートした CA 署名付き証明書が期限切れになっています。
問題
NSX Manager アプライアンス ホストにインポートした CA 署名付き証明書が期限切れになっているため、NSX Application Platform の使用を継続できません。NSX Application Platform とそこでホストする NSX 機能の使用を継続するには、自己署名の CA 署名付き証明書を委任する必要があります。
原因
CA 署名付き証明書のデフォルトの有効期限は 825 日です。システムの自己署名の証明書は自動的に更新されます。カスタム CA 署名付き証明書をインポートする場合は、その証明書のライフサイクルを維持する必要があります。更新し忘れた場合、NSX Application Platform と NSX Manager Unified Appliance との間の接続が切断され、NSX Application Platform とそこでホストする NSX 機能の使用を継続できなくなります。
解決方法
- root ユーザーとして NSX Manager アプライアンスにログインします。
- 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"}]'
- 約 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
- ユーザー インターフェイスを使用して egress.crt を NSX Manager アプライアンスにインポートし、証明書 UUID を取得します。
- ブラウザから、エンタープライズ管理者の権限で NSX Manager (https://<nsx-manager-ip-address>) にログインします。
- の順に移動して [インポート] をクリックし、ドロップダウン メニューから [証明書] を選択します。
- 証明書の名前を入力します。
- [サービス証明書] を [なし] に設定します。
- [証明書の内容] テキスト ボックスに、前の手順で作成した egress.crt ファイルの内容を貼り付けます。
- [保存] をクリックします。
- [証明書] テーブルで、新しく追加された証明書の行を展開し、証明書 ID の値をコピーします。
- 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
- システム プロンプトで次の 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>"}'