Durante l'attivazione di NSX Network Detection and Response, la verifica preliminare non riesce.

Problema

I registri del processo nsx-ndr-precheck contengono il seguente messaggio di errore:

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 questi registri, il problema specifico si manifesta con la stringa di errore "CERTIFICATE_VERIFY_FAILED" nella connessione all'host "external-nsx-manager".

Per ulteriori informazioni su come accedere a questi registri, fare riferimento al passaggio 4 b di Verifica preliminare dell'attivazione di NSX Network Detection and Response non riuscita.

Causa

Il problema si verifica a causa di errori relativi alla configurazione del certificato per il cluster di NSX Manager.

Soluzione

  1. Per risolvere il problema, assicurarsi di aver configurato correttamente i certificati per ogni nodo del cluster di NSX Manager e per il cluster stesso. Verificare in particolare che:
    • Ogni certificato abbia un nome comune che corrisponde al nome di dominio completo per cui viene utilizzato.
    • Nessun certificato utilizzi lo stesso nome comune di un altro certificato.
  2. Per verificare che la configurazione del certificato sia corretta, sono suggeriti due approcci.
    1. Utilizzo di un browser Web:

      Con un browser Web, passare a ciascuno dei nodi di NSX Manager singolarmente utilizzando i loro nomi di dominio completi e passare anche al nome di dominio del cluster. In ciascuno di questi domini utilizzare gli strumenti del browser e visualizzare le informazioni sul certificato, in particolare il Nome comune del certificato. Verificare che il nome comune corrisponda esattamente al nome di dominio visitato nella barra dell'URL del browser.

    2. Utilizzo degli strumenti della riga di comando:
      In una shell per uno dei nodi di NSX Manager, eseguire i comandi seguenti:
      • Estrarre il certificato CA attendibile dalla piattaforma Kubernetes .
      napp-k get secret/nsx-ndr-precheck-ccpchk-nsx-manager-truststore   -o
                        jsonpath='{.data.ca\.crt}'| base64 -d > /tmp/ca.crt
      Il comando estrae le autorità di certificazione attendibili dalla piattaforma Kubernetes nel file /tmp/ca.crt.
      • Visualizzare il subject dei certificati attendibili.
      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

      Il comando analizza tali certificati e restituisce il subject di ciascun certificato. Il comando include anche il nome comune del certificato che si trova dopo "CN=" nell'esempio.

      Verificare che i nomi comuni visualizzati siano tutti diversi e corrispondano ai nomi di dominio completi previsti per i nodi del cluster di NSX Manager e per il cluster stesso.

      Nell'esempio precedente, il nome comune vmnsxt-mgmt-p01.example.com è presente due volte. La configurazione di esempio non è corretta. Il nome di dominio completo per il cluster di NSX Manager è vmnsxt-mgmt.example.com, ma il certificato utilizza il nome comune errato vmnsxt-mgmt-p01.example.com.