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.

Error SSL TLSV1_ALERT_INTERNAL_ERROR con la biblioteca aiohttp.

Tengo una aplicación que realiza solicitudes a la API a través de la biblioteca “aiohttp”.

session = aiohttp.ClientSession()
session.get(url, proxy=get_proxy_v2(), ssl=False)

Realizo alrededor de 10 solicitudes por segundo. Aproximadamente una vez cada hora recibo el siguiente error:

aiohttp.client_exceptions.ClientConnectorSSLError: No se puede conectar al host <REDACTED_HOST>:443 ssl: False [[SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:997)]

Inicialmente, no tenía ssl=False, pero lo agregué para tratar de evitar este error, sin embargo, no tuvo efecto, aún recibo este error aproximadamente una vez cada hora. Podría simplemente agregar un bloque try-catch para capturar el error y reintentar, pero me gustaría solucionar correctamente este error. Estoy un poco confundido de cómo estoy obteniendo un error de SSL a pesar de tener ssl establecido en False. No estoy seguro de qué hacer a partir de aquí.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución:

    Este error puede ser debido a varias razones, incluyendo problemas con los certificados SSL/TLS en el lado del servidor, problemas con el proxy o problemas con la implementación SSL/TLS en la biblioteca aiohttp.

    Aquí hay tres posibles soluciones que puedes probar:

    1. Verificar Certificados TLS/SSL

    Incluso si has establecido ssl=False, el servidor aún puede intentar utilizar certificados SSL/TLS para autenticar la conexión. Intenta establecer ssl=True y ve si resuelve el problema. Si no, intenta agregar el certificado del servidor a tu almacén de certificados raíz confiables.

    Puedes usar la biblioteca certifi para obtener una lista de certificados raíz confiables y compararla con el certificado del servidor.

    import certifi
    import ssl
    import aiohttp
    
    # Obtener el certificado del servidor y verificarlo con los certificados raíz confiables
    ssl_context = ssl.create_default_context(cafile=certifi.where())
    session = aiohttp.ClientSession()
    session.get(url, proxy=get_proxy_v2(), ssl=ssl_context)
    

    2. Utilizar un Proxy Diferente

    El problema puede estar relacionado con el servidor proxy que estás utilizando. Intenta usar un servidor proxy diferente y ve si resuelve el problema.

    session = aiohttp.ClientSession()
    session.get(url, proxy=get_another_proxy_v2(), ssl=False)
    

    3. Actualizar la Biblioteca aiohttp

    El problema puede estar relacionado con la versión de la biblioteca aiohttp que estás utilizando. Intenta actualizar a la última versión para ver si resuelve el problema.

    pip install --upgrade aiohttp
    

    Estas son algunas posibles soluciones que puedes probar para resolver el error SSL. Si ninguna de estas funciona, es posible que debas investigar más a fondo para identificar la causa raíz del problema.

Comments are closed.