当社の法人が署名した証明書を使用してサーバーへのHTTPS呼び出しを行う必要があります。この認証局を信頼するようにPythonを設定するにはどうすればよいですか?Pythonの企業認証局を使用したHTTPS証明書の確認
1
A
答えて
0
デフォルトでは(httplib.HTTPSConnection
を使用していると仮定します)、何もする必要はありません。httplib
doesn't do any certificate verification(same applies to urllib
)です。
もちろん、これはうまくいかないので、サーバー証明書を確認する必要があります。これにはさまざまな解決策があります(this question参照)。
簡潔には、確認コールバックを挿入できるように、ソケットをssl.wrap_socket
経由でSSLソケットに手動で切り替える必要があります(ホスト名と証明書の両方を確認する必要があります) 。
また、httplib
に制限されていない場合は、PycURLを使用すると確実にこのクリーナーになります。 CA_INFO
(またはCA_PATH
)は、内部CA証明書を指すように設定できます。さらに、通常はあらかじめ定義されたCAのリストはありませんが、here(Mozillaリストから変換されたもの)から1つ取得し、必要に応じて信頼するCAのリストにこれらの証明書を追加することができます。
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()
アクセス可能な場所や使用中のあなたのコーポレート・証明書chain.crtファイルを配置することを確認しますそれを指すpycurl.CAINFOオプション。
関連する問題
- 1. ADFS 3.0証明書認証
- 2. WCF認証用SSL証明書
- 3. Java SSL証明書失効確認
[HTTPS接続Python](http://stackoverflow.com/questions/2146383/https-connection-python) –
の可能な複製[Validate SSL certificates with Python](http://stackoverflow.com/質問/ 1087227/validate-ssl-certificates-with-python) – systempuntoout
これはhttps/sslを作成する方法ではなく、信頼できる機関を追加する方法です – Brig