2016-09-06 10 views
17

python.orgからPython3をインストールしたばかりで、pipでパッケージをインストールする際に問題があります。設計上、ここにはネットワーク上のman-in-the-middleパケットインスペクションアプライアンスがあり、ここですべてのパケット(SSLを含む)を検査し、すべてのSSL接続をそれ自身の証明書で辞任します。 GPOの一部がカスタムルート証明書をWindowsキーストアにプッシュします。WindowsでPythonが使用するCAストアにカスタムCAルート証明書を追加する方法はありますか?

Javaを使用している場合、外部のhttpsサイトにアクセスする必要がある場合は、自己署名入りのCA証明書を信頼するようにJVM内のcacertsを手動で更新する必要があります。

私はそれをどのようにPythonで達成できますか?今のところ、pipを使ってパッケージをインストールしようとすると、わかりやすく、[SSL: CERTIFICATE_VERIFY_FAILED]というエラーが発生します。

私は--trusted-hostパラメータを使用して無視することができますが、インストールしようとしているすべてのパッケージに対してそのようにしたくありません。

pythonが使用するCA証明書ストアを更新する方法はありますか?

+0

[接続エラー:\ [SSL:CERTIFICATE \ _VERIFY \ _FAILED \]証明書の検証に失敗しました(\ _ssl.c:598) "の可能な複製が可能です。]](http://stackoverflow.com/questions/ 25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi) – rfkortekaas

+0

@rfkortekaasと同様です。私はあなたが参照している投稿が問題を解決するために何をすべきかを尋ねており、提案されているすべての解決策が各呼び出しに手作業で引数を提供することを必要とするので、私は特に、Windowsのpythonが使用する信頼ストアを使用して、これらの正確な解決策を避ける方法を尋ねています。 –

+0

グローバルキーストアの使用を含むすべての可能なオプションを説明しているkenorbの答えを見てください。 – rfkortekaas

答えて

7

実行:python -c "import ssl; print(ssl.get_default_verify_paths())"を実行して、証明書の検証に使用される現在のパスを確認します。そのうちの1つにあなたの会社のルート証明書を追加してください。

パスopenssl_capath_envは、環境変数:SSL_CERT_DIRを指します。

SSL_CERT_DIRが存在しない場合は、ファイルシステムを作成し、ファイルシステム内の有効なフォルダにポイントする必要があります。このフォルダに証明書を追加して使用することができます。

+5

私のWindowsシステムでは、これはWindowsでは利用できない '/ usr/local/ssl/certs'を返します。 –

+0

私は最終的に、別のプロジェクトに取り込まれた後にこれをやっていました。@ColinTalbertと同様に、存在しないフォルダ '/ usr/local/ssl/certs'を指しています。 –

+0

私は私の質問を編集しました。うまくいけば、これはケースを解決します。 – rfkortekaas

関連する問題