Próbuję użyć Github API z httplib2. Ale kiedy wysyłać żądania do jego punktów końcowych, to daje mi następujący błąd:Jak zaktualizować plik cacerts.txt dla httplib2 dla Github?
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
mogę użyć następującego rozwiązania:
h = httplib2.Http(disable_ssl_certificate_validation=True)
h.request('https://api.github.com/gists')
# OUT: ({'content-length': '58443' ...
ale nadal jest to obejście, i zastanawiam się, jak prawidłowo zweryfikować Certyfikat SSL dla Github z httplib2. Wyszukiwanie w Google Uznałem, że należy zaktualizować cacerts.txt
tej biblioteki, ale nie wiem jak i gdzie uzyskać certyfikat dla Github. Czy istnieje inny odpowiedni sposób wysyłania żądań za pośrednictwem https, bez problemów z weryfikacją certyfikatu?