Die Vorabprüfung schlägt beim Aktivieren von NSX Network Detection and Response fehl.
Problem
Die Protokolle des nsx-ndr-precheck
-Auftrags enthalten den folgenden Fehler:
2022-10-04 19:43:44,954 - nsx_api_client.nsx_api_client - ERROR - communication error: HTTPSConnectionPool(host='external-nsx-manager', port=443): Max retries exceeded with url: /api/v1/licenses (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))
In diesen Protokollen tritt das spezifische Problem mit dem Fehler-String "CERTIFICATE_VERIFY_FAILED"
bei der Verbindung mit dem Host "external-nsx-manager"
auf.
Weitere Informationen zum Zugriff auf diese Protokolle finden Sie in Schritt 4b von Vorabprüfung der NSX Network Detection and Response-Aktivierung fehlgeschlagen.
Ursache
Das Problem tritt aufgrund von Problemen mit der Zertifikateinrichtung für den NSX Manager-Cluster auf.
Lösung
- Um das Problem zu beheben, stellen Sie sicher, dass Sie die Zertifikate für jeden Knoten im NSX Manager-Cluster und für den Cluster selbst ordnungsgemäß konfiguriert haben. Überprüfen Sie insbesondere Folgendes:
- Jedes Zertifikat hat einen allgemeinen Namen, der dem vollqualifizierten Domänennamen entspricht, für den es verwendet wird.
- Keine zwei Zertifikate verwenden denselben allgemeinen Namen.
- Folgende zwei Vorgehensweisen werden empfohlen, um zu überprüfen, ob die Zertifikatseinrichtung korrekt ist.
- Verwenden eines Webbrowsers:
Rufen Sie mit einem Webbrowser jeden NSX Manager-Knoten einzeln mit den vollqualifizierten Domänennamen auf und rufen Sie auch den Domänennamen des Clusters auf. Verwenden Sie in jeder dieser Domänen die Browser-Tools und zeigen Sie die Zertifikatsinformationen an, insbesondere den Allgemeinen Namen des Zertifikats. Bestätigen Sie, dass der allgemeine Name genau mit dem Namen der besuchten Domäne in der URL-Leiste des Browsers übereinstimmt.
- Verwenden der Befehlszeilentools:
Führen Sie in einer Shell für einen der NSX Manager-Knoten die folgenden Befehle aus:
- Extrahieren Sie das vertrauenswürdige CA-Zertifikat von der Kubernetes-Plattform.
napp-k get secret/nsx-ndr-precheck-ccpchk-nsx-manager-truststore -o jsonpath='{.data.ca\.crt}'| base64 -d > /tmp/ca.crt
Der Befehl extrahiert die vertrauenswürdigen Zertifizierungsstellen aus der Kubernetes-Plattform in die Datei /tmp/ca.crt.- Zeigen Sie das
subject
der vertrauenswürdigen Zertifikate an.
openssl storeutl -noout -certs --text /tmp/ca.crt |grep "Subject:" Subject: C=US, ST=CA, L=Palo Alto, O=VMware Inc., OU=NSX, CN=k8s-platform-ca Subject: C=US, ST=CA, L=Palo Alto, O=VMware Inc., OU=NSX, CN=vmnsxt-mgmt-p01.example.com Subject: C=US, ST=CA, L=Palo Alto, O=VMware Inc., OU=NSX, CN=vmnsxt-mgmt-p02.example.com Subject: C=US, ST=CA, L=Palo Alto, O=VMware Inc., OU=NSX, CN=vmnsxt-mgmt-p03.example.com Subject: C=US, ST=CA, L=Palo Alto, O=VMware Inc., OU=NSX, CN=vmnsxt-mgmt-p01.example.com
Der Befehl analysiert diese Zertifikate und druckt das
subject
jedes Zertifikats aus. Der Befehl enthält auch den allgemeinen Namen des Zertifikats, der sich im Beispiel nach"CN="
befindet.Stellen Sie sicher, dass die angezeigten allgemeinen Namen alle unterschiedlich sind und mit den erwarteten vollqualifizierten Domänennamen für die Knoten des NSX Manager-Clusters und für den Cluster selbst übereinstimmen.
Im vorherigen Beispiel wird der allgemeine Name
vmnsxt-mgmt-p01.example.com
zweimal angezeigt. Das Beispiel-Setup ist falsch konfiguriert. Der vollqualifizierte Domänenname für den NSX Manager-Cluster istvmnsxt-mgmt.example.com
, aber das Zertifikat verwendet den falschen allgemeinen Namenvmnsxt-mgmt-p01.example.com
.
- Verwenden eines Webbrowsers: