Сбой проверки SSL для registry.gitlab.com через httplib2 - PullRequest
0 голосов
/ 06 мая 2019

Я использую 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')

Любые указатели на то, что я должен делать или пробовать ... спасибо!

1 Ответ

0 голосов
/ 06 мая 2019

Мне кажется, я понял ответ. Размещать это здесь для всех, кто может столкнуться с этим.

Корневые сертификаты, используемые httplib2, поступают из файла cacerts.txt. (https://github.com/httplib2/httplib2/blob/master/python2/httplib2/cacerts.txt)

registry.gitlab.com, вероятно, переключил корневой CA на прошлой неделе, и это вызвало проблему.

...