Ställ in PycURLs proxy- och ursprungs-CA-paket separat
Använd en https-proxy-URL för TLS mot mellanhanden, med PROXY_CAINFO för den parten och CAINFO för destinationen.
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()Använd ett PycURL/libcurl-bygge som stöder HTTPS-proxyer. Paketens sökvägar anger de avsedda förtroendemängderna: PROXY_CAINFO verifierar mellanhanden; CAINFO verifierar destinationens TLS. Utelämna en uttrycklig överskridning när befintligt förtroende redan täcker den anslutningen.
URL:en i PROXY beskriver sin lyssnare. Ingen numerisk PROXYTYPE-gissning behövs. För en vanlig HTTP-lyssnare förblir URL:en http:// även med en HTTPS-destination. I så fall tillhandahåller HTTP-proxylistan slutpunktskandidater; proxy-TLS-paketet gäller bara när lyssnaren faktiskt använder TLS.
Ange ett proxykonto via PROXYUSERNAME och PROXYPASSWORD när det krävs. Behåll certifikatverifieringen: att stänga av proxyverifieringen tar bort identitetskontrollen av mellanhanden i stället för att installera den saknade auktoriteten.