Azure CLI 로그인 시 에러발생했을 때 대처법
Azure CLI 로그인 시 발생한 에러
az login
명령을 수행할 때 아래와 같은 에러가 발생하는 경우가 있다.
"Max retries exceeded with url: /<api-url> (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))"
기본적으로 이것은 적어도 4 가지 다른 이유로 발생할 수 있다.
- 액세스중인 리소스에 자체 서명 된 인증서를 사용하고 있을 때.
- 인증서를 제공하는 데 사용 된 인증 기관이 운영 체제에 알려져 있지 않을 때.
- 인증서를 제공하는 데 사용되는 인증 기관이 프로그래밍 언어나 프레임워크에 알려져 있지 않을 때.
- 특정회사 네트워크 환경에서는 HTTPS 트래픽을 가로 채서 검사를 하는데 이를 위해 인증서 체인 상단에 자체 인증서를 추가하기 때문에 에러가 발생할 수 있다.
위의 모든 문제에 대한 해결책은 호출자가 신뢰하는 자체 서명 인증서 또는 최상위 루트 CA 인증서를 얻는 것이다. 이 경우 호출자는 Azure CLI이며 (최소한 Linux 및 macOS) Python 요청 모듈을 통해 수행된다. 다음과 같이 조치를 취하면 된다.
- 브라우저에서 오류 메시지에 언급 된 URL을 연다. 이하 지침은 Windows에서 Chrome을 사용하여 작성되었지만 다른 운영 체제의 다른 브라우저에서도 유사한 기능이 있다.
- 브라우저의 주소 표시 줄에서 자물쇠 아이콘을 클릭.
- 사이트 인증서를 본다.
- 페이지->인증서 체인의 루트 노드를 선택하고 클릭->인증서보기 . 이를 루트 CA 인증서라고 한다
- 루트 CA 인증서 에 대한 세부 사항 탭 페이지를 클릭 하고 파일 에 복사를 클릭하십시오.
- 인증 내보내기 마법사를 열어, A와 디스크로 내보낼 선택 DER은 X.509 바이너리 인코딩 (.CER)
- 파일을 root_ca.cer로 저장.
- openssl을 사용하여 파일을 PEM 형식으로 변환한다.
openssl x509 -inform der -in root_ca.cer -out root_ca.pem
openssl 다운로드 : 다음 링크에서 다운받는다.
openssl 환경변수 세팅 : 다음 링크를 참고한다.
root_ca.pem 을 메모장으로 열어 그내용을 그대로 복사해 다음경로의 파일을 열어 제일 마지막 라인에 추가해준다.
C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\certifi\cacert.pem
댓글남기기