Httpie: solicitudes.excepciones.SSLError: [Errno 8] _ssl.c:507: EOF ocurrió en violación del protocolo

Creado en 28 feb. 2015  ·  23Comentarios  ·  Fuente: 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

Comentario más útil

Tratar

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

@kajisaap envíeme un correo electrónico con la URL para que pueda brindarle una mejor ayuda con esto. Mi correo electrónico está en mi página de perfil .

Todos 23 comentarios

@kajisaap ¿qué URL era? apissl.example.com no se resuelve.

@jakubroztocil Lo pegaría, pero odio ver la URL de la empresa en la lista de problemas públicos. Es por eso que pegué el registro de depuración. ¿Cómo le envío un mensaje privado si la URL del punto final de API es crítica para fines de depuración?

@jakubroztocil , asumiendo la similitud aquí https://github.com/kennethreitz/requests/issues/2056

Parece un problema aguas arriba. Intente instalar los paquetes mencionados en el problema vinculado.

Tratar

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

@kajisaap envíeme un correo electrónico con la URL para que pueda brindarle una mejor ayuda con esto. Mi correo electrónico está en mi página de perfil .

@sigmavirus24 sudo pip install --force-reinstall 'requests[security]' --upgrade ayudó. Estoy en Yosemite 10.10.2 si la información del sistema puede marcar la diferencia

@kajisaap ¿puedes comentar con openssl version también?

Nota al margen: @jakubroztocil su llamada de depuración a las solicitudes es defectuosa. requests.request no aceptará ese diccionario. Tiene que ser requests.request(**{ #... por lo que vale.

@kajisaap también python -c 'import ssl; print(ssl.OPENSSL_VERSION)'

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

@sigmavirus24 gracias, arreglado

Así que tengo 0 problemas con el sitio web en python 3.4.2. Así que esto parecería ser un problema de SNI. Como referencia, esta es mi versión de openssl:

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

Pero además, solo tengo solicitudes instaladas.

En python 2.7.9, lo mismo funciona con la misma versión de openssl. Curiosamente, la instalación requests[security] en un virtualenv temporal en py2.7.9 falla (y proporciona un error diferente porque SysCallError de pyOpenSSL no tiene un método __str__ definido que devuelve correctamente formateado str ). Ese error también se debe a una falla en el apretón de manos. Actualizaría a python 2.7.9 (a través de brew o Python.org) y actualizaría openssl (a través de brew y force-linking). También estoy en OSX 10.10

Huele como un duplicado de #262 / #288.

@mathiasbynens , hasta donde puedo decir, esto no tiene nada que ver con SNI. Dicho esto, @kajisaap ha dejado de responder, así que estoy :+1: por cerrar esto como incompleto.

@ sigmavirus24 Estoy confundido: acaba de decir "Así que esto parece ser un problema de SNI" en su comentario anterior.

Confirmo que tengo este error también:

$ http https://larlet.fr

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

Con esa versión de OpenSSL y HTTPie:

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

Forcé la reinstalación con el módulo de seguridad de las solicitudes sin ninguna mejora.

Tengo el mismo problema al tratar de acceder a una aplicación Dropwizard hello-world en localhost (la respuesta esperada es una matriz JSON vacía).

$ 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
[]

Todavía estoy viendo esto:

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

Intenté forzar la reinstalación del módulo de seguridad de las solicitudes: no me gustó.

Hola,
Tengo el mismo problema con python 2.7.9 y el módulo de solicitudes cuando se ejecuta
r = solicitudes.get(url=urloo,headers=self.headers, verificar=Falso)
con urloo = https://10.xxx.xx.xxxx :yyyyy/oo/rest/latest/executions/21589456/summary
la devolución de la solicitud:
Archivo "C:ApplicationsPython27libsite-packagesrequests-2.9.1-py2.7.eggrequestsadapters.py", línea 447, en envío
aumentar SSLError (e, solicitud = solicitud)
solicitudes.excepciones.SSLError: [Errno 8] _ssl.c:507: EOF ocurrió en violación del protocolo
El encabezado de verificación se coloca en False

tal vez relacionado con kennethreitz/requests#3006

¿Alguien experimenta este problema con Python 2.7.6?
Si no, esto podría estar relacionado: http://stackoverflow.com/questions/32330919/python-ssl-ssl-sslerror-ssl-unsupported-protocol-unsupported-protocol-ssl

Pude resolver esto haciendo lo que sugirió @sigmavirus24

pip install --force-reinstall requests[security]
Esto fue con python 2.7.10 en macOS Sierra 10.12

https://github.com/jkbrzt/httpie#sni -indicación del nombre del servidor

Acabo de encontrar este problema en https://github.com/apache/fineract/pull/644 , con cualquier versión que apt-get install httpie se instale en Travis CI (con dist: trusty ). El uso --verify=no (¡NO --verify no !) lo arregló. (NO querrá usar esto para un sitio web público con SSL; en mi caso, fue solo para un https://localhost:8443/... con un certificado autofirmado).

https://github.com/jkbrzt/httpie#sni -indicación del nombre del servidor

FYI, este ancla parece haber sido eliminada mientras tanto.

¿Fue útil esta página
0 / 5 - 0 calificaciones