Python Requests: CA బండిల్లు verify లో ఉండాలి, cert లో కాదు
ఆమోదించిన CA విశ్వాస సామగ్రిని ధృవీకరణ కాన్ఫిగరేషన్లో ఉంచండి, సర్టిఫికెట్ లోపాన్ని క్లయింట్ ప్రైవేట్ కీ అభ్యర్థనగా పరిగణించకుండా.
ఒక సహోద్యోగి మీకు సంస్థ యొక్క CA సర్టిఫికెట్ ఇస్తారు. Requests లో cert అనే పరామితి ఉంది. పేర్లు సరిపోలినట్లు కనిపిస్తాయి, కానీ అవి వేర్వేరు ప్రశ్నలకు సమాధానం ఇస్తాయి.
| సెట్టింగ్ | ఉద్దేశం |
|---|---|
verify | ఎదుటి పక్షాన్ని ధృవీకరించడానికి ఉపయోగించే విశ్వాస సామగ్రిని ఎంచుకుంటుంది |
cert | క్లయింట్ ప్రామాణీకరణ అవసరమైనప్పుడు క్లయింట్ సర్టిఫికెట్ను దాని ప్రైవేట్ కీతో సమర్పిస్తుంది |
ఆమోదించిన ఇంటర్సెప్షన్ CA కోసం, Requests ఆపరేషన్ ఉద్దేశించిన CA బండిల్ను ఎంచుకోవచ్చు:
response = requests.get(
'https://example.com/',
proxies=routes,
verify='/path/to/approved-ca-bundle.pem',
timeout=15,
)ఇక్కడ routes అనేది అప్లికేషన్ యొక్క ప్రస్తుత ప్రాక్సీ మ్యాపింగ్. ఈ క్లయింట్ కోసం సరైన చదవగలిగే విశ్వాస బండిల్ను మార్గం పేర్కొనాలి. కనెక్షన్ విఫలమైంది కాబట్టి మాత్రమే ఎంచుకున్న డౌన్లోడ్ చేసిన వెబ్సైట్ సర్టిఫికెట్ ఇది కాదు.
పర్యావరణ చర REQUESTS_CA_BUNDLE మరో మద్దతు ఉన్న విశ్వాస ఇన్పుట్. అది ప్రభావవంతం కానట్లు అనిపిస్తే వాస్తవ పంపే మార్గాన్ని తనిఖీ చేయండి; సిద్ధం చేసిన అభ్యర్థన వర్క్ఫ్లోలు మరియు స్పష్టమైన సెట్టింగ్లు పర్యావరణ కాన్ఫిగరేషన్ ఎలా విలీనమవుతుంది అనేది మార్చవచ్చు.
మీకు CA యొక్క ప్రైవేట్ కీ అవసరం ఉండకూడదు
క్లయింట్ ఆమోదించిన జారీచేసేదిని గుర్తించడానికి అవసరమైనది పబ్లిక్ CA సర్టిఫికెట్. దాని సంతకం ప్రైవేట్ కీ మరొక పక్షం యొక్క శక్తివంతమైన రహస్యం. సాధారణ ప్రాక్సీ-విశ్వాస మరమ్మతులో భాగంగా దాన్ని అప్లికేషన్ వినియోగదారులకు పంపిణీ చేయకూడదు.
నిర్దిష్ట గమ్యం లేదా విడిగా కాన్ఫిగర్ చేసిన మరో TLS సంబంధం క్లయింట్ సర్టిఫికెట్ను ఇంకా కోరవచ్చు. అది ప్రత్యేక అవసరం, ప్రతి సర్టిఫికెట్-ధృవీకరణ లోపం నుండి అంచనా వేసేది కాదు.
తదుపరి లోపం కనిపించినప్పుడు ఆపరేషన్కు పేరు పెట్టండి: CA ఫైల్ లోడ్ చేయడం, ఎదుటి పక్షం సర్టిఫికెట్ ధృవీకరించడం, లేదా క్లయింట్ గుర్తింపును సమర్పించడం. సందేశం మారే వరకు verify మరియు cert మధ్య ఫైల్ను తరలించడం దాని పాత్రను ఎంచుకోవడానికి నమ్మదగిన మార్గం కాదు.