2

企業権限によって署名された証明書を使用して、サーバーに対して HTTPS 呼び出しを行う必要があります。この認証局を信頼するように Python を設定するにはどうすればよいですか?

4

2 に答える 2

0

これを解決するためのサンプル コードを探している場合は、次のPycURLにあります。

import pycurl
curl = pycurl.Curl()
curl.setopt(pycurl.URL, "https://your-secure-website.com/")
curl.setopt(pycurl.SSL_VERIFYPEER, 1)
curl.setopt(pycurl.SSL_VERIFYHOST, 2)
curl.setopt(pycurl.CAINFO, "/path/to/your-corporate-certificate-chain.crt")
curl.perform()

your-corporate-certificate-chain.crt ファイルをアクセス可能な場所に配置し、pycurl.CAINFO オプションを使用してそれを指すようにしてください。

于 2012-10-25T16:13:24.867 に答える
0

デフォルトでは ( を使用していると仮定してhttplib.HTTPSConnection)、何もする必要はhttplibありません。証明書の検証は行われません(同じことが にも当てはまりますurllib)。

もちろん、これは良いことではありません。サーバー証明書を確認する必要があります。これにはさまざまな解決策があります (この質問を参照してください)。

つまり、検証コールバックを挿入できるように、手動でhttplib.HTTPConnectionソケットを SSL ソケットに変換する必要がある場合があります (ホスト名と証明書の両方を検証する必要があります)。ssl.wrap_socket

または、 に制約されていない場合は、 PycURLhttplibを使用すると確実にこれがきれいになります。内部 CA 証明書を指すように構成(または) できます。さらに、通常は事前に定義された CA のリストは付属していませんが、ここから(Mozilla リストから変換された) 1 つを取得し、必要に応じて信頼する CA のリストにこれらの証明書を追加できます。CA_INFOCA_PATH

于 2012-05-06T14:54:22.233 に答える