pip install が「SSL: CERTIFICATE_VERIFY_FAILED」でインストールできない
PyPI への TLS 接続で証明書を検証できないと pip はパッケージを取得できない。
多くは証明書バンドルが古い・社内プロキシの SSL 検査・時計のずれが原因で、certifi 更新や信頼ホスト指定で解決する。
#pip#ssl#certificate#proxy#certifi
公開:
要約
pip install が SSL: CERTIFICATE_VERIFY_FAILED で止まるのは、pip が PyPI(pypi.org / files.pythonhosted.org)への HTTPS 接続で相手の証明書を検証できないため。
最短の切り分けは、まず証明書バンドルの更新です。python -m pip install --upgrade certifi を実行し、それでも直らなければプロキシや時計を疑います。
よくある原因
- 証明書バンドルが古い: Python が参照する CA 証明書(certifi)が古く、PyPI 側の証明書チェーンを検証できない。
- SSL 検査プロキシ: 社内ネットワークのプロキシが通信を復号し、独自の中間証明書を差し込むため、標準の CA では検証が通らない。
- 時計のずれ: 端末の日時が大きく狂っていると、証明書の有効期間チェックに失敗する。
- 古い pip / Python: バージョンが古く、現在の TLS 構成や証明書に追従できていない。
解決策
1. 証明書を更新する
まず証明書バンドルを最新化します。
python -m pip install --upgrade certifi pip2. 社内 CA を信頼させる
SSL 検査環境では、配布されている社内 CA を pip に渡します。
pip install --cert /path/to/corp-ca.pem requests恒久化するなら設定ファイルに書きます。
# pip.conf / pip.ini
[global]
cert = /path/to/corp-ca.pem3. 暫定回避(信頼ホスト)
急ぐときだけ --trusted-host で検証を回避できますが、中間者攻撃のリスクがあるため恒久利用は避けます。
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org requests時刻のずれが原因のこともあるため、システムの日時設定もあわせて確認してください。