İstekler - SSL Sertifikası

SSL sertifikası, güvenli url'lerle birlikte gelen bir güvenlik özelliğidir. Requests kütüphanesini kullandığınızda, verilen https URL'si için SSL sertifikalarını da doğrular. SSL doğrulama, istek modülünde varsayılan olarak etkindir ve sertifika yoksa bir hata verir.

Güvenli URL ile çalışmak

Aşağıda güvenli URL ile çalışma örneği verilmiştir -

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

Çıktı

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"
      }
   }
]

Yukarıdaki https URL'sinden kolayca bir yanıt alıyoruz ve bunun nedeni istek modülünün SSL sertifikasını doğrulayabilmesidir.

Aşağıdaki örnekte gösterildiği gibi, sadece doğrulama = False ekleyerek SSL doğrulamasını devre dışı bırakabilirsiniz.

Misal

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

Çıktıyı alacaksınız, ancak aynı zamanda SSL sertifikasının doğrulanmadığını ve sertifika doğrulamasının eklenmesinin önerildiğini belirten bir uyarı mesajı da verecektir.

Çıktı

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"
      }
   }
]

Ayrıca SSL sertifikasını kendi ucunuzda barındırarak ve kullanarak yolu vererek doğrulayabilirsiniz. verify aşağıda gösterildiği gibi.

Misal

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

Çıktı

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"
      }
   }
]