Se produce un error en la comprobación previa al activar NSX Network Detection and Response.

Problema

Los registros del trabajo nsx-ndr-precheck contienen el siguiente error:

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)'),))

En estos registros, el problema específico se manifiesta con la cadena de error "CERTIFICATE_VERIFY_FAILED" en la conexión con el host "external-nsx-manager".

Para obtener más información sobre cómo acceder a estos registros, consulte el paso 4 b de Error en la comprobación previa de activación de NSX Network Detection and Response.

Causa

El problema se debe a errores en la configuración del certificado del clúster de NSX Manager.

Solución

  1. Para solucionar este problema, asegúrese de que los certificados están configurados correctamente en cada nodo del clúster de NSX Manager y en el propio clúster. Verifique específicamente lo siguiente:
    • Cada certificado tiene un nombre común que coincide con el nombre de dominio completo para el que se utiliza.
    • No hay dos certificados que usen el mismo nombre común.
  2. Para comprobar que la configuración del certificado es correcta, le sugerimos estos son métodos.
    1. Con un navegador web:

      En un navegador web, acceda a cada uno de los nodos de NSX Manager de forma individual utilizando sus nombres de dominio completos y acceda también el nombre de dominio del clúster. En cada uno de estos dominios, utilice las herramientas del navegador para ver la información del certificado y, en particular, el Nombre común del certificado. Confirme que el nombre común coincida exactamente con el nombre de dominio visitado en la barra de URL del navegador.

    2. Con las herramientas de la línea de comandos:
      En un shell, para uno de los nodos de NSX Manager, ejecute los siguientes comandos:
      • Extraiga el certificado de CA de confianza de la plataforma Kubernetes.
      napp-k get secret/nsx-ndr-precheck-ccpchk-nsx-manager-truststore   -o
                        jsonpath='{.data.ca\.crt}'| base64 -d > /tmp/ca.crt
      El comando extraerá las entidades de certificación de confianza de la plataforma Kubernetes in las incluirá en el archivo /tmp/ca.crt.
      • Consulte el valor de subject en los certificados de confianza.
      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

      El comando analiza esos certificados e imprime el valor de subject de cada certificado. El comando también incluye el nombre común del certificado que aparece después de "CN=" en el ejemplo.

      Compruebe que los nombres comunes que se muestran sean todos diferentes y que coincidan con los nombres de dominio completos esperados para los nodos del clúster de NSX Manager y para el propio clúster.

      En el ejemplo anterior, el nombre común vmnsxt-mgmt-p01.example.com aparece dos veces. La configuración de ejemplo no está configurada correctamente. El nombre de dominio completo del clúster de NSX Manager es vmnsxt-mgmt.example.com, pero el certificado utiliza un nombre común incorrecto (vmnsxt-mgmt-p01.example.com).