Python Requests: CA rinkiniai priklauso verify, o ne cert
Įdėkite patvirtintą CA pasitikėjimo medžiagą į tikrinimo konfigūraciją, o ne traktuokite sertifikato klaidą kaip kliento privataus rakto prašymą.
Kolega duoda jums organizacijos CA sertifikatą. Requests siūlo parametrą, vadinamą cert. Pavadinimai atrodo kaip pora, bet jie atsako į skirtingus klausimus.
| Nustatymas | Paskirtis |
|---|---|
verify | Pasirenka pasitikėjimo medžiagą, naudojamą kitai pusei patikrinti |
cert | Pateikia kliento sertifikatą su jo privačiu raktu, kai reikalingas kliento autentifikavimas |
Patvirtintai perėmimo CA, Requests operacija gali pasirinkti numatytą CA rinkinį:
response = requests.get(
'https://example.com/',
proxies=routes,
verify='/path/to/approved-ca-bundle.pem',
timeout=15,
)Čia routes yra esamas programos tarpinio serverio susiejimas. Kelias turi nurodyti teisingą, skaitomą pasitikėjimo rinkinį šiam klientui. Tai nėra atsisiųstas svetainės sertifikatas, pasirinktas vien dėl to, kad ryšys nepavyko.
Aplinkos kintamasis REQUESTS_CA_BUNDLE yra dar vienas palaikomas pasitikėjimo šaltinis. Patikrinkite tikrąjį siuntimo kelią, jei jis atrodo neveiksmingas; paruoštų užklausų darbo eigos ir aiškūs nustatymai gali pakeisti, kaip sujungiama aplinkos konfigūracija.
Jums neturėtų prireikti CA privataus rakto
Viešas CA sertifikatas yra tai, ko klientui reikia atpažinti patvirtintą išdavėją. Jo pasirašymo privatus raktas yra galinga kitos šalies paslaptis. Jis neturėtų būti platinamas programos naudotojams kaip įprasto tarpinio serverio pasitikėjimo taisymo dalis.
Kliento sertifikato vis tiek gali reikalauti konkretus tikslas arba kitas atskirai sukonfigūruotas TLS ryšys. Tai atskiras reikalavimas, o ne kažkas, kas išvedama iš kiekvienos sertifikato tikrinimo klaidos.
Kai pasirodys kita klaida, įvardykite operaciją: CA failo įkėlimas, kitos pusės sertifikato tikrinimas arba kliento tapatybės pateikimas. Failo perkėlimas tarp verify ir cert, kol pranešimas pasikeis, nėra patikimas būdas pasirinkti jo vaidmenį.