es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

WSGIServer no funciona con https y python3

Tenemos un paquete antiguo escrito en Python 2 y estamos trabajando en actualizarlo a Python 3. Es una aplicación web y estamos utilizando WSGIServer.

from gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler

server = pywsgi.WSGIServer(('', puerto), apphandler, handler_class=WebSocketHandler)

def apphandler(request, start_response):
    log.info("ATENCIÓN: la solicitud es {}".format(request))
    # hacer algo

Sin embargo, cuando intento utilizar la aplicación web con https://website, se mostrará este error:

Este sitio no puede proporcionar una conexión segura
website.com envió una respuesta no válida.
ERR_SSL_PROTOCOL_ERROR

Y en mi registro del servidor, vería cosas como:

Método HTTP no válido: '\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03Èæ\x01\x92É\x16ÁW»P½\x1aBÐa\x83ÆÊa]ãíDp¥¥¥\x12Ç\x82|\x1f E5\x03aAv\x99¢Nª\x93ÅÏ:Ð\x9d÷3£\x80çÍïÌÑÿC\rÏUÄ\x8b\x00 ªª\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ZZ\x00\x00\x00\x00\x005\x003\x00\x000website.com\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00\n'

Cuando en realidad uso el sitio web como http://website.com, funcionará. Y cuando en Python 2, el servidor responderá correctamente a https.

Supongo que podría ser un problema de codificación, pero ni siquiera llegará a donde puse el registro en la función de apphandler. ¿Alguien sabe cómo puedo solucionar esto? ¿Necesito cambiar el servidor o la configuración de codificación de Python 3?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la conexión SSL y el servidor no puede manejarla correctamente. Esto puede ser debido al hecho de que el paquete de Python 2 no es compatible con las conexiones SSL.

    Para solucionar esto, es posible que necesite actualizar el código para Python 3 y asegurarse de que pueda manejar las conexiones SSL adecuadamente. También puede intentar usar un servidor diferente como Nginx o Apache para manejar las conexiones SSL.

    Además, puede verificar la configuración SSL de su servidor y asegurarse de que esté configurado correctamente para admitir conexiones SSL. Esto puede implicar la configuración de certificados SSL y asegurarse de que se habiliten los protocolos y cifrados adecuados.

    En general, es probable que el problema esté relacionado con un problema de compatibilidad entre el paquete de Python 2 y las conexiones SSL. Actualizar el código y la configuración SSL debería ayudar a resolver este problema.

Comments are closed.