En este artículo, discutiremos cómo deshabilitar las comprobaciones de certificados de seguridad para requests en Python.
En Python, el módulo de requests se usa para enviar requests HTTP de un método particular a una URL específica. Esta solicitud devuelve un objeto de respuesta que incluye datos de respuesta como codificación, estado, contenido, etc. Pero cada vez que realizamos operaciones como obtener, publicar, eliminar, etc.
Obtendremos SSLCertVerificationError, es decir, certificado autofirmado SSL:Certificate_Verify_Failed. Para deshacerse de este error, hay dos formas de desactivar las comprobaciones del certificado de seguridad. Están
- Pasar verificar = Falso al método de solicitud.
- Usar Session.verify=False
Método 1: pasar verificar = falso al método de solicitud
El módulo de requests tiene varios métodos como obtener, publicar, eliminar, solicitar, etc. Cada uno de estos métodos acepta una URL para la cual enviamos una solicitud HTTP. Junto con la URL, también pase el parámetro verificar=Falso al método para deshabilitar las comprobaciones de seguridad.
Python3
import requests # sending a get http request to specified url response = requests.request( "GET", "https://www.geeksforgeeks.org/", verify=False) # response data print(response.text) print(response)
Producción:
<Response [200]>
Explicación: al pasar verificar = Falso al método de solicitud, deshabilitamos la verificación del certificado de seguridad e hicimos que el programa se ejecutara sin errores. Pero este enfoque arrojará advertencias como se muestra en la imagen de salida. Esto se puede evitar utilizando el método urlib3.disable_warnings.
Maneje la advertencia anterior con el método request.packages.urllib3.disable_warnings()
La advertencia anterior que se produjo al usar verificar = Falso en el método de solicitud se puede suprimir mediante el método urllib3.disable_warnings.
Python3
import requests from urllib3.exceptions import InsecureRequestWarning # Suppress the warnings from urllib3 requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning) # sending a get http request to specified url response = requests.get("https://www.geeksforgeeks.org/", verify=False) # response data print(response)
Producción:
<Response [200]>
Método 2: Usar Session.verify=False
La forma alternativa de deshabilitar el control de seguridad es usar el módulo Sesión presente en las requests. Podemos declarar Session.verify=False en lugar de pasar verificar=True como parámetro. Miremos el código de muestra para que uno tenga una idea clara del uso de Session.
Python3
import requests # creating Session object and # declaring the verify variable to False session = requests.Session() session.verify = False # sending a get http request to specified url response = requests.get("https://www.geeksforgeeks.org/") # response data print(response.text)
Producción
Publicación traducida automáticamente
Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA