[Error] "SSL: CERTIFICATE_VERIFY_FAILED" - pip 사용시 인증서 에러 조치

pip 명령어 사용시 인증서 에러(ssl error) 가 발생하는 경우 해결하는 방법을 설명하는 글입니다.

현상

  • 회사 PC 분석환경 세팅 중 파이썬 패키지 설치 과정에서 에러 발생 : SSL: CERTIFICATE_VERIFY_FAILED

  • 에러 메세지로 검색한 결과 인증서 관련 에러로 확인되었으며 아래 두 가지 방법으로 해결 가능

1. trusted-host 옵션 사용 : pip 설치시 신뢰할 수 있는 호스트를 명령줄에서 등록

  • ex) pandas 라이브러리 설치
pip --trusted-host pypi.org --trusted-host files.pythonhosted.org install pandas 

2. requests 라이브러리 내 SSL 검증 여부 변경

Default 값은 True 이며, False로 변경하면 검증단계를 Skip 하게됨 (보안 이슈가 있으므로 개인 PC에서만 사용 권장)

  • ex) 수정 파일 위치
${site-packages PATH}/pip/_vendor/requests/sessions.py

조치

  • 라이브러리 설치때마다 --trusted-host를 입력하는 것에 번거로움을 느껴 설정 파일에 직접 적용하기로 함
  • sessions.py 파일을 찾는데 고생을 꽤 했으며 제 PC에서는 아래 경로에 위치하고 있었음
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib\site-packages\pip\_vendor\requests\sessions.py

  • sessions.py 파일에서 self.verify 옵션을 검색하였고 아래와 같이 변경 후 저장함 (장애 우려되었는지 습관적으로 기존 코드를 주석으로 변경.. ^^;)

해결

  • 설정 후 정상적으로 패키지 설치가 되는 것을 확인함

참고사항

  • 해결 과정에서 가장 큰 어려움은 sessions.py 파일을 찾는 것이었음
  • 위 PC의 경우, python을 기본 설치하여 사용하고 있어 문제 없었으나 아나콘다(Anaconda)를 사용하는 경우, conda 환경마다 sessions.py가 있어 검색에 혼란이 있었음
  • 아나콘다(anaconda) 환경을 사용중인 경우, 사용중인 conda의 sessions.py 을 찾아 수정해야 함

관련 링크

[1] SSL: CERTIFICATE_VERIFY_FAILED 및 pip, 패키지 설치 에러
[2] 팁-파이썬-패키지-설치할-때-ssl-인증-오류-해제-방법
[3] [Python] SSL: CERTIFICATE_VERIFY_FAILED 문제 우회


System Info.

Windows 10
Python 3.8.1
PyCharm 2020.3.3 (Community Edition)
R version 4.0.3 (2020-10-10)
RStudio Version 1.4.1103
JRE: 11.0.2+159 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o