pypi 저장소 이용 시와 번외로 https 가 명시되어 있는 외부 API 호출 시 경우로 나누었다. 아래의 글은 MacOS 기준으로 작성했다.
배경
사내 SSL 암복호화 때문에 인증서를 따로 사용하는데 이 경우 아래와 같은 오류 코드들을 만나게 되었다.
certificate verify failed: unable to get local issuer certificate
certificate verify failed: self-signed certificate in certificate chain
해결
pypi 저장소 이용 시
pyCharm
따로 건드려야 하는 설정은 없다.
pyenv, virtualenv
가상환경에 있는 pip 의 설정 파일(pip.conf)을 추가하거나 내용을 수정해서 해결 가능하다.
만약, 해당 파일이 없을 경우 사용자 home 디렉토리에서 .pip 폴더를 만든 후 pip.conf 파일을 만들어 신뢰 가능한 호스트를 넣는다.
[global]
trusted-host =
pypi.org
files.pythonhosted.org
즉, 아래처럼 만들어 주면 된다.
이렇게 하면 pyenv 를 사용하고 있는 상태에서 IDE 상관없이 해당 설정을 읽어 이용하게 되므로 문제없이 이용이 가능하다.
poetry
아래 명령어를 입력해서 신뢰 가능한 호스트를 추가한다.
$ poetry source add fpho https://files.pythonhosted.org
$ poetry config certificates.fpho.cert false
$ poetry source add pypi
$ poetry config certificates.PyPI.cert false
$ poetry config certificates.pypi.cert false
HTTPS 사용하는 외부 API 이용할 경우
SSL 암복호화 인증서를 직접 읽도록 환경 변수를 설정한다.
만약, zsh 을 이용하고 있다면 아래와 같이 넣는다.
$ vi ~/.zshrc
export REQUESTS_CA_BUNDLE=인증서주소
export SSL_CERT_FILE=인증서주소
혹시 모르니 현재 이용 중인 인증서들을 읽을 수 있도록 현재 Python 설치 상태와 homebrew 설치 라이브러리를 참고해서 아래 명령어를 실행하자
# 직접 Python 패키지를 설치한 경우
$ sudo ln -s /etc/ssl/* /Library/Frameworks/Python.framework/Versions/Current/etc/openssl/
# Apple Silicon 기준
$ sudo ln -s /etc/ssl/* /opt/homebrew/etc/openssl@3/certs
$ source ~/.zshrc
'잡다지식' 카테고리의 다른 글
[IDE] Jetbrains 에서 웹 브라우저 로드가 되지 않을 때 (0) | 2025.03.12 |
---|---|
[IDE] Intellij 패키지 접힘 풀기 (0) | 2022.09.08 |
[Android] Android 5.0 (롤리팝) 개발자 옵션 나타내기 (0) | 2016.05.20 |