2016-04-22 13 views
0

証明書とパスワードが必要なサービスプロバイダとのSSL接続を確立します。 SSLCERTPASSWDパラメーターがあるので、これはCurlで簡単に実行できます(下記参照)。しかし、私たちはPythonとそのsslライブラリとの接続を確立したいと考えています。ここで使用できる引数は、証明書ファイルを参照するca_certだけです。 Python 2.7のこの制限を克服する方法を誰かが知っていますか? pycurlがオプションである場合はここでPythonでパスワードを要求するSSL接続2.7

は事前

+0

[pycurl](https://pypi.python.org/pypi/pycurl)オプションを使用していますか? – salomonderossi

+0

私はこれを避けようとしていましたが、それは最善の方法であるようです。どうもありがとう! – Shant

答えて

0

のカール

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSLCERT, $cert); 
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'asdf'); 
// curl_setopt($ch, CURLOPT_SSLVERSION, 5); // let server decide 
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // this stops the data returning 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
if($result = curl_exec($ch) === false) { 
    die('Curl error: ' . curl_error($ch)); 
} 

多くのおかげです。何かlinkeこれがあなたを助けるかもしれない

import pycurl 
import StringIO 

b = StringIO.StringIO() 
c = pycurl.Curl() 
url = "https://example.com" 
c.setopt(pycurl.URL, url) 
c.setopt(pycurl.WRITEFUNCTION, b.write) 
c.setopt(pycurl.CAINFO, "/path/cacert.pem") 
c.setopt(pycurl.SSLKEY, "/path/key_file.pem") 
c.setopt(pycurl.SSLCERT, "/path/cert_file.pem") 
c.setopt(pycurl.SSLKEYPASSWD, "your pass phrase") 
c.perform() 
c.close() 
result = b.getvalue() 
関連する問題