Requests verifica los certificados SSL para requests HTTPS, al igual que un navegador web. Los certificados SSL son pequeños archivos de datos que vinculan digitalmente una clave criptográfica a los detalles de una organización. A menudo, un sitio web con un certificado SSL se denomina sitio web seguro. De manera predeterminada, la verificación SSL está habilitada y las requests generarán un SSLError si no puede verificar el certificado.
Deshabilitar la verificación del certificado SSL
Intentemos acceder a un sitio web con un certificado SSL no válido, utilizando requests de Python
Python3
# import requests module import requests # Making a get request response = requests.get('https://expired.badssl.com/') # print request object print(response)
Producción :-
Este sitio web no tiene configuración SSL, por lo que genera este error.
Para deshabilitar la verificación de certificados, en el lado del cliente, se puede usar el atributo de verificación .
Python3
# import requests module import requests # Making a get request response = requests.get('https://expired.badssl.com/', verify = False) # print request object print(response)
Producción
Dado que se imprime la respuesta de salida 200, podemos suponer que la solicitud fue exitosa.
Verificación SSL manual
también se puede pasar el enlace al certificado para su validación solo a través de requests de python.
Python3
# import requests module import requests # Making a get request response = requests.get('https://github.com', verify ='/path / to / certfile') # print request object print(response)
Esto funcionaría en caso de que la ruta proporcionada sea correcta para el certificado SSL para github.com.
Certificados del lado del cliente
También puede especificar un certificado local para usarlo como certificado del lado del cliente, como un solo archivo (que contiene la clave privada y el certificado) o como una tupla de las rutas de ambos archivos:
>>> requests.get('https://kennethreitz.org', cert=('/path/client.cert', '/path/client.key'))
o persistente:
s = requests.Session() s.cert = '/path/client.cert'
Si especifica una ruta incorrecta o un certificado no válido, obtendrá un SSLError:
>>> requests.get('https://kennethreitz.org', cert='/wrong_path/client.pem') SSLError: [Errno 336265225] _ssl.c:347: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA