2つの大部分が同一のシステム(どちらもFedora 25を実行しており、両方とも同様のパッケージバージョンがインストールされています)では、SSL証明書の検証エラーが発生しているシステムがあります。それが動作PythonはコンサルティングシステムのCAバンドルなしでSSL証明書検証エラーを投げていますか?
import requests
r = requests.get('https://insidehost.corp.example.com')
一つ一つのシステムを、他にそれが失敗している間:私は実行する場合つまり、まず
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)
私は単純に、必要なCA証明書を逃したが、走っていたことを把握strace
の下のpythonは、失敗したシステムでは、pythonはで、CAバンドルを開こうとしていないことを示しています。それが動作するシステム上で、次のとおりです。
strace -e trace=open,stat python testscript.py |& grep /etc/pki
のみ得られます。さらに
open("/etc/pki/tls/legacy-settings", O_RDONLY) = -1 ENOENT (No such file or directory)
、python3
と同じテストスクリプトの実行:
open("/etc/pki/tls/legacy-settings", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/etc/pki/tls/certs/ca-bundle.crt", {st_mode=S_IFREG|0444, st_size=257079, ...}) = 0
open("/etc/pki/tls/certs/ca-bundle.crt", O_RDONLY) = 4
しかし、障害が発生し、システムの収量に
失敗したシステム...働く!python
は、/usr/bin/python
であり、python-2.7.13-1.fc25.x86_64
である。いずれのシステムも環境変数*_CA_BUNDLE
を設定していません。
こんにちは-1人目、コメントを残しますか?これはかなり良い質問だと思う。 – larsks