Cómo deshabilitar las comprobaciones de certificados de seguridad para requests en Python

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

Deja una respuesta

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