cURL-запросы работают, но python-запрос завершается неудачно - PullRequest
0 голосов
/ 05 февраля 2019

Сводка

Мы используем пользовательский CA в нашей среде.Я импортировал сертификаты CA в хранилище доверенных сертификатов, загрузив сертификаты Base64 и обновив хранилище доверенных сертификатов, используя update-ca-certificates.

. Я могу запускать запросы cURL к моему REST API, однако библиотека запросов завершается неудачно сОшибка SSL при запуске того же.

Что я пробовал

Я попытался указать путь к файлу сертификата root ca к библиотеке, но получил ту же ошибку.Как мне устранить эту проблему?Установка проверки на ложь не возможна.

Выполнение кода

Работает

curl -X GET https://api.me.com/admin/ -H 'Авторизация: токен 4ae5'

Не работает

request.get ('https://api.me.com/admin/', headers = {' Authorization ':' Token 4ae5 '}, verify =' / etc / ssl / certs / root.pem ')

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 345, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 844, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/ssl_.py", line 325, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.5/ssl.py", line 377, in wrap_socket
    _context=self)
  File "/usr/lib/python3.5/ssl.py", line 752, in __init__
    self.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 988, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 633, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 630, in urlopen
    raise SSLError(e)
requests.packages.urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/requests/api.py", line 67, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 53, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 480, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 588, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 447, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

1 Ответ

0 голосов
/ 05 февраля 2019

... requests.get(..., verify='/etc/ssl/certs/root.pem')

Учитывая ваше описание использования update-ca-certificates, похоже, что вы используете Debian или аналогичный (например, Ubuntu).В этом случае соответствующий путь должен быть /etc/ssl/certs/ca-certificates.crt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...