NSX Network Detection and Response를 활성화하는 동안 사전 검사가 실패합니다.

문제

nsx-ndr-precheck 작업의 로그에는 다음 오류가 포함됩니다.

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

이러한 로그에서 특정 문제는 호스트 "external-nsx-manager" 연결에 "CERTIFICATE_VERIFY_FAILED" 오류 문자열과 함께 나타납니다.

이러한 로그에 액세스하는 방법에 대한 자세한 내용은 NSX Network Detection and Response 활성화 사전 검사 실패의 4단계를 참조하십시오.

원인

이 문제는 NSX Manager 클러스터의 인증서 설정 문제로 인해 발생합니다.

해결책

  1. 이 문제를 해결하려면 NSX Manager 클러스터의 각 노드와 클러스터 자체에 대해 인증서를 올바르게 구성했는지 확인합니다. 구체적으로 다음을 확인합니다.
    • 각 인증서에는 사용되는 정규화된 도메인 이름과 일치하는 일반 이름이 있습니다.
    • 두 인증서는 어떤 경우에도 동일한 일반 이름을 사용하지 않습니다.
  2. 인증서 설정이 올바른지 확인하려면 다음과 같은 두 가지 방법을 제안합니다.
    1. 웹 브라우저 사용:

      웹 브라우저에서 각 NSX Manager 노드를 정규화된 도메인 이름을 사용하여 개별적으로 방문한 후 클러스터 도메인 이름도 방문합니다. 이러한 각 도메인에서 브라우저 도구를 사용하고 인증서 정보 및 특히 인증서의 일반 이름을 확인합니다. 일반 이름이 브라우저의 URL 표시줄에 있는 방문한 도메인 이름과 정확히 일치하는지 확인합니다.

    2. 명령줄 도구 사용:
      셸에서 NSX Manager 노드 중 하나에 대해 다음 명령을 실행합니다.
      • Kubernetes 플랫폼에서 신뢰할 수 있는 CA 인증서를 추출합니다.
      napp-k get secret/nsx-ndr-precheck-ccpchk-nsx-manager-truststore   -o
                        jsonpath='{.data.ca\.crt}'| base64 -d > /tmp/ca.crt
      이 명령은 Kubernetes 플랫폼에서 신뢰할 수 있는 인증 기관을 /tmp/ca.crt 파일로 추출합니다.
      • 신뢰할 수 있는 인증서의 subject를 봅니다.
      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

      이 명령은 해당 인증서를 구문 분석하고 각 인증서의 subject를 출력합니다. 이 명령에는 샘플 예제에서 "CN=" 다음에 나오는 인증서의 일반 이름도 포함됩니다.

      표시된 일반 이름이 모두 다른지, NSX Manager 클러스터의 노드 및 클러스터 자체에 대해 예상되는 정규화된 도메인 이름과 일치하는지 확인합니다.

      이전 예에서는 일반 이름 vmnsxt-mgmt-p01.example.com이 두 번 발생합니다. 샘플 설정이 잘못 구성되었습니다. NSX Manager 클러스터의 정규화된 도메인 이름이 vmnsxt-mgmt.example.com이지만 인증서에서는 잘못된 일반 이름 vmnsxt-mgmt-p01.example.com을 사용합니다.