できない.dev

pip install が「SSL: CERTIFICATE_VERIFY_FAILED」でインストールできない

PyPI への TLS 接続で証明書を検証できないと pip はパッケージを取得できない。
多くは証明書バンドルが古い・社内プロキシの SSL 検査・時計のずれが原因で、certifi 更新や信頼ホスト指定で解決する。

#pip#ssl#certificate#proxy#certifi

公開:

要約

pip installSSL: CERTIFICATE_VERIFY_FAILED で止まるのは、pip が PyPI(pypi.org / files.pythonhosted.org)への HTTPS 接続で相手の証明書を検証できないため。

最短の切り分けは、まず証明書バンドルの更新です。python -m pip install --upgrade certifi を実行し、それでも直らなければプロキシや時計を疑います。

よくある原因

  1. 証明書バンドルが古い: Python が参照する CA 証明書(certifi)が古く、PyPI 側の証明書チェーンを検証できない。
  2. SSL 検査プロキシ: 社内ネットワークのプロキシが通信を復号し、独自の中間証明書を差し込むため、標準の CA では検証が通らない。
  3. 時計のずれ: 端末の日時が大きく狂っていると、証明書の有効期間チェックに失敗する。
  4. 古い pip / Python: バージョンが古く、現在の TLS 構成や証明書に追従できていない。

解決策

1. 証明書を更新する

まず証明書バンドルを最新化します。

python -m pip install --upgrade certifi pip

2. 社内 CA を信頼させる

SSL 検査環境では、配布されている社内 CA を pip に渡します。

pip install --cert /path/to/corp-ca.pem requests

恒久化するなら設定ファイルに書きます。

# pip.conf / pip.ini
[global]
cert = /path/to/corp-ca.pem

3. 暫定回避(信頼ホスト)

急ぐときだけ --trusted-host で検証を回避できますが、中間者攻撃のリスクがあるため恒久利用は避けます。

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org requests

時刻のずれが原因のこともあるため、システムの日時設定もあわせて確認してください。

この記事は役立ちましたか?