2013-09-01 6 views
6

मैं गेस्ट्यूब एपीआई का उपयोग fansplib2 के साथ करने की कोशिश कर रहा हूं। लेकिन जब मैंने उसे के अंतिम बिंदुओं का अनुरोध करने की, यह मेरे निम्न त्रुटि देता है:Github के लिए httplib2 के cacerts.txt को कैसे अपडेट करें?

import httplib2 
h = httplib2.Http() 
h.request('https://api.github.com/gists') 
# OUT: Traceback (most recent call last): 
# OUT: File "<input>", line 1, in <module> 
# OUT: File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1570, in request 
# OUT:  (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) 
# OUT: File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1317, in _request 
# OUT:  (response, content) = self._conn_request(conn, request_uri, method, body, headers) 
# OUT: File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1252, in _conn_request 
# OUT:  conn.connect() 
# OUT: File "/usr/local/lib/python2.7/dist-packages/httplib2/__init__.py", line 1044, in connect 
# OUT:  raise SSLHandshakeError(e) 
# OUT: SSLHandshakeError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 

मैं निम्नलिखित तरीके को इस्तेमाल कर सकते हैं:

h = httplib2.Http(disable_ssl_certificate_validation=True) 
h.request('https://api.github.com/gists') 
# OUT: ({'content-length': '58443' ... 

लेकिन यह अभी भी एक समाधान नहीं है, और मैं सोच रहा हूँ कैसे ठीक मान्य करने के लिए Fansplib2 के साथ Github के लिए एसएसएल प्रमाणपत्र। Google को खोजकर मैंने पाया कि मुझे उस लाइब्रेरी के cacerts.txt को अपडेट करना चाहिए, लेकिन यह नहीं पता कि कैसे, और गिथब के लिए प्रमाणपत्र प्राधिकरण कहां प्राप्त करें। या क्या प्रमाण पत्र सत्यापन समस्याओं के बिना https के माध्यम से अनुरोध भेजने का कोई अन्य सही तरीका है?

उत्तर

4

यूपीडी: फ़ायरफ़ॉक्स में गिटहब खोलने का सबसे आसान तरीका है, पृष्ठ जानकारी -> सुरक्षा -> देखें प्रमाणपत्र -> विवरण -> निर्यात -> पीईएम फ़ाइल के रूप में। और अनुरोधों का उपयोग करना बेहतर है।

जानकारी जो फ़ायरफ़ॉक्स https संबंध के बारे में देता है से, मुझे पता चला है कि GitHub के लिए प्रमाण पत्र है "DigiCert उच्च आश्वासन ईवी मूल CA", यहां पाया जा सकता है जो: http://curl.haxx.se/ca/cacert.pem प्रमाण पत्र की

पाठ को चिपकाया जा सकता है

h = httplib2.Http(ca_certs='/path/to/that/file') 

Here is also useful post about this topic: httplib2.__path__ + '/cacerts.txt', या http कनेक्शन अलग फाइल करने के लिए और से बचाया के साथ बनाया जाना चाहिए।

संबंधित मुद्दे