Я использую bazel для публикации изображений докеров в gitlab regitry. На прошлой неделе команды bazel начали давать сбои. Я смог сузить проблему до httplib2.
Пример кода ниже может быть использован для воспроизведения проблемы.
import httplib
import httplib2
conn = httplib.HTTPSConnection("registry.gitlab.com")
conn.request("GET", "/")
r1 = conn.getresponse()
print r1.status, r1.reason
httplib2.Http().request('https://registry.gitlab.com')
Выход для вышеупомянутого:
200 OK
Traceback (most recent call last):
File "deleteMe.py", line 9, in <module>
httplib2.Http().request('https://registry.gitlab.com')
File "/Users/joint/Library/Python/2.7/lib/python/site-packages/httplib2/__init__.py", line 2135, in request
cachekey,
File "/Users/joint/Library/Python/2.7/lib/python/site-packages/httplib2/__init__.py", line 1796, in _request
conn, request_uri, method, body, headers
File "/Users/joint/Library/Python/2.7/lib/python/site-packages/httplib2/__init__.py", line 1701, in _conn_request
conn.connect()
File "/Users/joint/Library/Python/2.7/lib/python/site-packages/httplib2/__init__.py", line 1411, in connect
raise SSLHandshakeError(e)
httplib2.SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)
Ошибка, отображаемая в Wireshark: «Описание: Неизвестный CA (48)»
Я попытался проверить сертификаты gitlab через openssl, и я не вижу никаких проблем с ними.
Я попытался указать сертификат gitlab в определении httplib2, но получаю ту же ошибку.
h = httplib2.Http(ca_certs='./registrygitlabcom.crt')
h.request('https://registry.gitlab.com')
Любые указатели на то, что я должен делать или пробовать ... спасибо!