Saltar al contenido

Error de verificación del certificado SSL de Python

Solución:

He encontrado esto aquí

Encontré esta solución, inserte este código al comienzo de su archivo fuente:

import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    # Legacy Python that doesn't verify HTTPS certificates by default
    pass
else:
    # Handle target environment that doesn't support HTTPS verification
    ssl._create_default_https_context = _create_unverified_https_context

Entonces, el problema podría tener tres resoluciones como yo lo veo:

  1. Un certificado está bien y hay algún problema con el código. El problema puede ocurrir, por ejemplo, al usar solicitudes preparadas como se describe en esta solución

    Pero realmente no creo que sea tu caso porque en el fragmento que has proporcionado no se utilizan tales métodos. Para las dos siguientes variantes, deberá obtener la URL que causa un error y explorar su certificado (se puede hacer a través del navegador).

  2. Un certificado está bien, pero la autoridad de certificación que lo firmó no está incluida en la lista de CA que utiliza la biblioteca de solicitudes. Después de abrir una URL problemática, verifique CA en ella y vea si sus fechas son válidas y están incluidas en esta lista. De lo contrario, agregue CA en la lista de confianza para la biblioteca de solicitudes, como se explica en las respuestas a esta pregunta de StackOverflow.

  3. Un certificado no es válido o no es válido. Misma solución que en 2.

La solución general es envolver su script en el try except cláusula e imprimir todas las URL que darán lugar a errores. Luego intente solicitarlos uno por uno a través de la biblioteca de solicitudes y vea si ocurre el problema. Si es así, es el caso (2) o (3). Si no es así, intente ejecutar el script en otra máquina con python y solicitudes recién instaladas. Si la ejecución tiene éxito, entonces hay algún problema en su configuración.

Si está utilizando Windows y ya ha importado la CA en la tienda DB de confianza, puede instalar el paquete python-certifi-win32 que automáticamente usará los mismos certificados de la tienda Trusted DB.

pip install python-certifi-win32

Entonces tu código debería comenzar a funcionar

Ver: Solicitudes de Python con wincertstore

https://gitlab.com/alelec/python-certifi-win32

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *