Demandes - Certification SSL

Le certificat SSL est une fonctionnalité de sécurité fournie avec des URL sécurisées. Lorsque vous utilisez la bibliothèque Requests, elle vérifie également les certificats SSL pour l'URL https donnée. La vérification SSL est activée par défaut dans le module de requêtes et générera une erreur si le certificat n'est pas présent.

Travailler avec une URL sécurisée

Voici l'exemple de l'utilisation d'une URL sécurisée -

import requests
getdata = requests.get(https://jsonplaceholder.typicode.com/users)
print(getdata.text)

Production

E:\prequests>python makeRequest.py
[
   {
      "id": 1,
      "name": "Leanne Graham",
      "username": "Bret",
      "email": "[email protected]",
      "address": {
         "street": "Kulas Light",
         "suite": "Apt. 556",
         "city": "Gwenborough",
         "zipcode": "92998-3874",
         "geo": {
            "lat": "-37.3159",
            "lng": "81.1496"
         }
      },
      "phone": "1-770-736-8031 x56442",
      "website": "hildegard.org",
      "company": {
         "name": "Romaguera-Crona",
         "catchPhrase": "Multi-layered client-server neural-net",
         "bs": "harness real-time e-markets"
      }
   }
]

Nous obtenons facilement une réponse de l'URL https ci-dessus, et c'est parce que le module de requête peut vérifier le certificat SSL.

Vous pouvez désactiver la vérification SSL en ajoutant simplement verify = False comme indiqué dans l'exemple ci-dessous.

Exemple

import requests
getdata = 
requests.get('https://jsonplaceholder.typicode.com/users', verify=False)
print(getdata.text)

Vous obtiendrez la sortie, mais cela donnera également un message d'avertissement indiquant que le certificat SSL n'est pas vérifié et qu'il est conseillé d'ajouter une vérification de certificat.

Production

E:\prequests>python makeRequest.py
connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is 
being made. Adding certificate verification is strongly advised. See: 
https://urllib3
.readthedocs.io/en/latest/advanced-usage.htm  l#ssl-warnings
 InsecureRequestWarning)
[
   {
      "id": 1,
      "name": "Leanne Graham",
      "username": "Bret", 
      "email": "[email protected]",
      "address": {
         "street": "Kulas Light",
         "suite": "Apt. 556",
         "city": "Gwenborough",
         "zipcode": "92998-3874",
         "geo": {
            "lat": "-37.3159",
            "lng": "81.1496"
         }
      },
      "phone": "1-770-736-8031 x56442",
      "website": "hildegard.org",
      "company": {
         "name": "Romaguera-Crona",
         "catchPhrase": "Multi-layered   client-server neural-net",
         "bs": "harness real-time e-markets"
      }
   }
]

Vous pouvez également vérifier le certificat SSL en l'hébergeant à votre extrémité et en indiquant le chemin en utilisant verify param comme indiqué ci-dessous.

Exemple

import requests
getdata = 
requests.get('https://jsonplaceholder.typicode.com/users', verify='C:\Users\AppData\Local\certificate.txt')
print(getdata.text)

Production

E:\prequests>python makeRequest.py
[
   {
      "id": 1,
      "name": "Leanne Graham",
      "username": "Bret",
      "email": "[email protected]",
      "address": {
         "street": "Kulas Light",
         "suite": "Apt. 556",
         "city": "Gwenborough",
         "zipcode": "92998-3874",
         "geo": {
            "lat": "-37.3159",
            "lng": "81.1496"
         }
      },
      "phone": "1-770-736-8031 x56442",
      "website": "hildegard.org",
      "company": {
         "name": "Romaguera-Crona",
         "catchPhrase": "Multi-layered   client-server neural-net",
         "bs": "harness real-time e-markets"
      }
   }
]