Python Requests: CA-bondels hoort in verify, nie in cert nie
Plaas goedgekeurde CA-vertrouensmateriaal in die verifikasiekonfigurasie eerder as om 'n sertifikaatfout as 'n versoek om 'n kliënt se private sleutel te behandel.
'n Kollega gee jou die organisasie se CA-sertifikaat. Requests bied 'n parameter genaamd cert. Die name lyk soos 'n pasmaat, maar hulle beantwoord verskillende vrae.
| Instelling | Doel |
|---|---|
verify | Kies vertrouensmateriaal wat gebruik word om die eweknie te verifieer |
cert | Wys 'n kliëntsertifikaat, met sy private sleutel, wanneer kliëntverifikasie vereis word |
Vir 'n goedgekeurde onderskeppings-CA kan 'n Requests-bewerking die beoogde CA-bondel kies:
response = requests.get(
'https://example.com/',
proxies=routes,
verify='/path/to/approved-ca-bundle.pem',
timeout=15,
)Hier is routes die toepassing se bestaande volmagtoewysing. Die pad moet die korrekte leesbare vertrouensbondel vir hierdie kliënt noem. Dit is nie 'n afgelaaide webwerfsertifikaat wat bloot gekies word omdat die verbinding misluk het nie.
Die omgewingsveranderlike REQUESTS_CA_BUNDLE is nog 'n ondersteunde vertrouensinsette. Kontroleer die werklike stuurpad as dit ondoeltreffend lyk; voorbereide versoek-werksvloei en eksplisiete instellings kan verander hoe omgewingskonfigurasie saamgevoeg word.
Jy behoort nie die CA se private sleutel nodig te hê nie
Die publieke CA-sertifikaat is wat 'n kliënt nodig het om 'n goedgekeurde uitgewer te herken. Sy ondertekenende private sleutel is 'n ander party se kragtige geheim. Dit behoort nie as deel van 'n roetine-proxyvertrouensoplossing aan toepassingsgebruikers versprei te word nie.
'n Kliëntsertifikaat kan steeds deur 'n bepaalde bestemming of 'n ander afsonderlik gekonfigureerde TLS-verhouding vereis word. Dit is 'n aparte vereiste, nie iets wat uit elke sertifikaatverifikasiefout afgelei word nie.
Wanneer die volgende fout verskyn, noem die bewerking: laai 'n CA-lêer, verifieer 'n eweknie-sertifikaat, of wys 'n kliëntidentiteit. Om 'n lêer tussen verify en cert te skuif totdat die boodskap verander, is nie 'n betroubare manier om sy rol te kies nie.