Я пытаюсь использовать urllib2 для открытия веб-страницы с использованием личного цифрового сертификата.
На самом деле в режиме командной строки, используя "curl -k", можно открыть этот ресурс.
Итак, мой вопрос:
1) Можно ли открыть эту веб-страницу с помощью urllib2, минуя использование личного цифрового сертификата?
2) Если опция (1) невозможна, как получить доступ к этому ресурсу, используя urllib2 и «персональный цифровой сертификат».
P.S.
код, который я пытаюсь использовать для доступа к этому ресурсу, следующий:
class HTTPSClientAuthHandler(urllib2.HTTPSHandler):
def <strong>init</strong>(self, key, cert):
urllib2.HTTPSHandler.<strong>init</strong>(self)
self.key = key
self.cert = cert</p>
<pre><code>def https_open(self, req):
return self.do_open(self.getConnection, req)
def getConnection(self, host, timeout=300):
return httplib.HTTPSConnection(host, key_file=self.key, cert_file=self.cert)
opener = urllib2.build_opener (HTTPSClientAuthHandler ('/ Users / antonio / .globus / userkey.pem', '/ Users / antonio / .globus / usercert.pem'))
response = opener.open ("https: // ........")
напечатать response.read ()
Я получил ошибку:
<code>
Traceback (most recent call last):
File "HTTPSClientAuthHandler.py", line 18, in
response = opener.open("https://cmsweb.cern.ch/tier0/express_config")
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 389, in open
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 502, in http_response
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 427, in error
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 361, in _call_chain
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 510, in http_error_default
urllib2.HTTPError: HTTP Error 500: Internal Server Error