Httpie: request.exceptions.SSLError: [Errno 8] _ssl.c:507: EOF произошел с нарушением протокола

Созданный на 28 февр. 2015  ·  23Комментарии  ·  Источник: httpie/httpie

HTTPie 1.0.0-dev
HTTPie data: /Users/kaji/.httpie
Requests 2.5.3
Pygments 2.0.2
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] darwin
Not every SSL website shows though. So, it is tricky. From browser , it is working fine.

>>> requests.request({'allow_redirects': False,
 'auth': None,
 'cert': None,
 'data': OrderedDict(),
 'files': DataDict(),
 'headers': {'User-Agent': 'HTTPie/1.0.0-dev'},
 'method': 'get',
 'params': ParamsDict(),
 'proxies': {},
 'stream': True,
 'timeout': 30,
 'url': u'https://apissl.example.com',
 'verify': True})

Traceback (most recent call last):
  File "/usr/local/bin/http", line 9, in <module>
    load_entry_point('httpie==1.0.0-dev', 'console_scripts', 'http')()
  File "/Library/Python/2.7/site-packages/httpie/core.py", line 112, in main
    response = get_response(args, config_dir=env.config.directory)
  File "/Library/Python/2.7/site-packages/httpie/client.py", line 41, in get_response
    response = requests_session.request(**kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 461, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol

Самый полезный комментарий

Пытаться

$ pip install --force-reinstall requests[security]

@kajisaap, пожалуйста, напишите мне URL-адрес, чтобы я мог помочь вам с этим. Моя электронная почта находится на странице моего профиля .

Все 23 Комментарий

@kajisaap какой это был URL? apissl.example.com не разрешается.

@jakubroztocil Я бы вставил его, но мне не нравится видеть URL-адрес компании в общедоступном списке проблем. Вот почему я вставил журнал отладки. как я могу сообщить вам в частном порядке, если URL-адрес конечной точки API имеет решающее значение для целей отладки?

@jakubroztocil , при условии сходства здесь https://github.com/kennethreitz/requests/issues/2056

Похоже на восходящую проблему. Попробуйте установить те пакеты, которые упомянуты в связанной проблеме.

Пытаться

$ pip install --force-reinstall requests[security]

@kajisaap, пожалуйста, напишите мне URL-адрес, чтобы я мог помочь вам с этим. Моя электронная почта находится на странице моего профиля .

@sigmavirus24 sudo pip install --force-reinstall 'requests[security]' --upgrade не помог. Я нахожусь в Yosemite 10.10.2, если системная информация может иметь значение

@kajisaap , ты тоже можешь прокомментировать с помощью openssl version ?

Примечание: @jakubroztocil ваш отладочный вызов запросов неисправен. requests.request не примет этот словарь. Это должно быть requests.request(**{ #... за то, что это стоит.

@kajisaap тоже python -c 'import ssl; print(ssl.OPENSSL_VERSION)'

$>python -c 'import ssl; print(ssl.OPENSSL_VERSION)'                                                                                         
OpenSSL 0.9.8zc 15 Oct 2014

@sigmavirus24 спасибо, исправлено

Так что у меня 0 проблем с сайтом на питоне 3.4.2. Так что это может показаться проблемой SNI. Для справки, это моя версия openssl:

>>> import ssl
>>> print(ssl.OPENSSL_VERSION)
OpenSSL 1.0.1l 15 Jan 2015

Но также у меня установлены только запросы.

На python 2.7.9 то же самое работает с той же версией openssl. Интересно, что установка requests[security] во временную виртуальную среду на py2.7.9 не удалась (и выдает другую ошибку, потому что SysCallError pyOpenSSL не имеет определенного метода __str__ , который возвращает правильно в формате str ). Эта ошибка также связана с ошибкой рукопожатия. Я бы либо обновился до python 2.7.9 (через brew или Python.org), либо обновил openssl (через brew и принудительное связывание). Я также на OSX 10.10

Пахнет как дубликат #262/#288.

@mathiasbynens , насколько я могу судить, это не имеет ничего общего с SNI. Тем не менее, @kajisaap перестал отвечать, поэтому я :+1: закрываю это как неполное.

@ sigmavirus24 Я в замешательстве — вы только что сказали «Похоже, это проблема SNI» в своем предыдущем комментарии.

Я подтверждаю, что у меня тоже есть эта ошибка:

$ http https://larlet.fr

http: error: SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol

С этой версией OpenSSL и HTTPie:

$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2 22 Jan 2015
$ http --version
0.9.2

Я принудительно переустановил модуль безопасности запросов без каких-либо улучшений.

У меня та же проблема, когда я пытаюсь запустить приложение Hello-world Dropwizard на локальном хосте (ожидаемый ответ — пустой массив JSON).

$ http --verify=no https://localhost:8443/hello

http: error: SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",) while doing GET request to URL: https://localhost:8443/hello
$ curl -k https://localhost:8443/hello
[]

Я все еще вижу это:

$ python --version
Python 2.7.11
$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2f  28 Jan 2016

Я попытался принудительно переустановить модуль безопасности запросов: без радости.

Привет,
У меня проблема с python 2.7.9 и модулем запросов при выполнении
r = request.get(url=urloo,headers=self.headers, verify=False)
с urloo = https://10.xxx.xx.xxxx :yyyyy/oo/rest/latest/executions/21589456/summary
возврат запроса:
Файл "C:ApplicationsPython27libsite-packagesrequests-2.9.1-py2.7.eggrequestsadapters.py", строка 447, в отправке
поднять SSLError (e, запрос = запрос)
request.exceptions.SSLError: [Errno 8] _ssl.c:507: EOF произошел с нарушением протокола
Заголовок проверки имеет значение False

может быть связано с kennethreitz/requests#3006

Кто-нибудь испытывает эту проблему с Python 2.7.6?
Если нет, это может быть связано: http://stackoverflow.com/questions/32330919/python-ssl-ssl-sslerror-ssl-unsupported-protocol-unsupported-protocol-ssl

Я смог решить эту проблему, сделав то, что предложил @sigmavirus24.

pip install --force-reinstall requests[security]
Это было с python 2.7.10 на macOS Sierra 10.12.

Я только что столкнулся с этой проблемой на https://github.com/apache/fineract/pull/644 с любыми версиями apt-get install httpie , установленными на Travis CI (с dist: trusty ). Использование --verify=no (НЕ --verify no !) исправил это. (Вы НЕ захотите использовать это для общедоступного веб-сайта с SSL; в моем случае это было только для https://localhost:8443/... с самозаверяющим сертификатом.)

https://github.com/jkbrzt/httpie#sni-имя-сервера-индикация

К вашему сведению, этот якорь, кажется, был удален тем временем.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги