デフォルトでは、Pythonのhttplib .HTTPSConnectionは、システムのトラストストアを使用してHTTPS証明書を検証しています。 (どのように)検証を行うために別のCAリストを設定して、デフォルトのものを置き換えることができますか?Pythonのhttplibで使用されるトラストストアを設定するには?
httplib(下記参照)で使用されているSSLContextを設定しようとしましたが、これは特定のファイルからcertsを追加するだけです。必要であれば、バリデーターがシステムのストアからより多くの証明書をロードするのを止めることはありません。
c = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
c.load_verify_locations(cafile='mozillacerts.pem', capath=None)
conn = httplib.HTTPSConnection(domain, port, context=c)
明確にする:私は与えられたファイルに本命と信頼のパスを検証することができない場合は、検証が失敗します。
(。私は、このためのDebian 8でPython 2.7.11を使用しています)
こんにちはソリン、あなたの答えをありがとう!最初に、プロトコル定数についての発言のおかげで、私は実際にここでその名前に惑わされました。次に、私はLet's Encryptを認識していますが、特定のブラウザの動作をシミュレートする必要があるため、どのCAが使用されているかを制御する必要があります。それは私が検証するサイトを取得することとは何の関係もありません。 – Stefan