Ορίστε ξεχωριστά τα πακέτα CA του proxy και του προορισμού στο PycURL
Χρησιμοποιήστε URL https για το TLS προς τον ενδιάμεσο, με PROXY_CAINFO για αυτόν τον κόμβο και CAINFO για τον προορισμό.
from io import BytesIO
import pycurl
body = BytesIO()
curl = pycurl.Curl()
try:
curl.setopt(pycurl.URL, "https://api.example/")
curl.setopt(pycurl.PROXY, "https://proxy.example:8443")
curl.setopt(pycurl.PROXY_CAINFO, "/path/to/proxy-ca.pem")
curl.setopt(pycurl.CAINFO, "/path/to/origin-ca.pem")
curl.setopt(pycurl.CONNECTTIMEOUT, 5)
curl.setopt(pycurl.TIMEOUT, 30)
curl.setopt(pycurl.WRITEDATA, body)
curl.perform()
finally:
curl.close()Χρησιμοποιήστε μια έκδοση PycURL/libcurl που υποστηρίζει proxies HTTPS. Οι διαδρομές των πακέτων δηλώνουν τα επιδιωκόμενα σύνολα εμπιστοσύνης: το PROXY_CAINFO επαληθεύει τον ενδιάμεσο· το CAINFO επαληθεύει το TLS του προορισμού. Παραλείψτε ρητή παράκαμψη όταν η υπάρχουσα εμπιστοσύνη καλύπτει ήδη αυτή τη σύνδεση.
Το URL στο PROXY περιγράφει τον ακροατή του. Δεν χρειάζεται αριθμητική εικασία PROXYTYPE. Για απλό ακροατή HTTP, το URL παραμένει http:// ακόμη και με προορισμό HTTPS. Σε αυτή την περίπτωση, η λίστα proxies HTTP παρέχει υποψήφια τελικά σημεία· το πακέτο TLS του proxy ισχύει μόνο όταν ο ακροατής χρησιμοποιεί πράγματι TLS.
Δώστε λογαριασμό proxy μέσω PROXYUSERNAME και PROXYPASSWORD όταν απαιτείται. Διατηρήστε την επαλήθευση πιστοποιητικών: η απενεργοποίηση της επαλήθευσης proxy αφαιρεί τον έλεγχο ταυτότητας του ενδιάμεσου αντί να εγκαθιστά την αρχή που λείπει.