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
- 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.
- Per verificare che la configurazione del certificato sia corretta, sono suggeriti due approcci.
- 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.
- 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 erratovmnsxt-mgmt-p01.example.com
.
- Utilizzo di un browser Web: