사내망(프록시/보안장비) 환경에서는 TLS 트래픽을 중간에서 검사(MITM)하는 경우가 많습니다. 이때 PC/런타임이 사내 Root CA(사설 인증서) 를 신뢰하지 못하면 CERTIFICATE_VERIFY_FAILED 계열 SSL 에러가 납니다.
1) Poetry 자체 업데이트(poetry self update) 실패
아래 명령으로 Poetry 버전 업그레이드를 시도했으나 SSL 인증이 실패했습니다.
poetry self update 
삭제 후 재설치를 해도 동일한 SSL 에러가 발생했습니다.
curl -sSL https://install.python-poetry.org | python3 - --uninstall
curl -sSL https://install.python-poetry.org | python3 - pip 쪽은 아래처럼 “신뢰할 수 있는 호스트”를 환경변수로 넣고 재시도할 수 있습니다.
export PIP_TRUSTED_HOST="pypi.org pypi.python.org files.pythonhosted.org" -
PIP_TRUSTED_HOST는 pip의-trusted-host옵션에 대응되는 환경변수입니다. -
다만 이 방식은 호스트를 “신뢰 처리”해 SSL 검증을 약하게 만드는 우회책 성격이라, 장기적으로는 권장되지 않습니다.
2) 패키지 설치(poetry install --no-root) 시 SSL 에러
Poetry는 재설치했는데도 poetry install --no-root 실행 중 urllib3가 files.pythonhosted.org에 접근하면서 SSL 에러가 날 수 있습니다.
제가 적용한 우회 해결은 다음과 같습니다.
poetry config certificates.PyPI.certfalse
poetrysource add fpho https://files.pythonhosted.org/simple --priority=supplemental
poetry config certificates.fpho.certfalse
poetry cache clear pypi --all -n
poetry lock# 구버전의 경우 아래와 같이 옵션을 주어야 합니다. (현재 버전 2.1.4)# poetry lock --no-update
poetry install --no-root -vvv -
poetry config certificates.PyPI.cert false- 기본 PyPI 저장소(
PyPI)에 대한 인증서 검증을 비활성화합니다.
- 기본 PyPI 저장소(
-
poetry source add fpho https://files.pythonhosted.org/simple --priority=supplemental-
files.pythonhosted.org/simple을fpho라는 이름의 보조(supplemental) 소스로 추가합니다. - 기본 소스에서 해결이 안 될 때만 참고하는 “추가 소스” 역할입니다.
-
-
poetry config certificates.fpho.cert false- 위에서 추가한
fpho소스에 대해서도 인증서 검증을 비활성화합니다.
- 위에서 추가한
-
poetry cache clear pypi --all -n- PyPI 관련 캐시를 전부 삭제합니다. (
-all: 전체 삭제,n: 확인 없이 실행)
- PyPI 관련 캐시를 전부 삭제합니다. (
-
poetry lock-
pyproject.toml기준으로poetry.lock을 재작성합니다.
-
-
poetry install --no-root- 현재 프로젝트 자체를 패키지로 설치하지 않고, 의존성만 설치합니다.