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

  1. 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.
  2. Folgende zwei Vorgehensweisen werden empfohlen, um zu überprüfen, ob die Zertifikatseinrichtung korrekt ist.
    1. 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.

    2. 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 ist vmnsxt-mgmt.example.com, aber das Zertifikat verwendet den falschen allgemeinen Namen vmnsxt-mgmt-p01.example.com.