Configure por separado os paquetes CA do proxy e da orixe en PycURL
Use un URL https de proxy para o TLS cara ao intermediario, con PROXY_CAINFO para ese par e CAINFO para o destino.
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()Use unha compilación de PycURL/libcurl compatible con proxies HTTPS. As rutas dos paquetes representan os conxuntos de confianza previstos: PROXY_CAINFO verifica o intermediario; CAINFO verifica o TLS do destino. Omita unha substitución explícita cando a confianza existente xa cubra esa conexión.
O URL de PROXY describe o seu receptor. Non fai falta adiviñar un valor numérico de PROXYTYPE. Para un receptor HTTP simple, o URL segue a ser http:// aínda cun destino HTTPS. Nese caso, a lista de proxies HTTP fornece candidatos de extremo; o paquete TLS do proxy só se aplica cando o receptor usa TLS de verdade.
Proporcione unha conta de proxy mediante PROXYUSERNAME e PROXYPASSWORD cando sexa necesario. Manteña a verificación de certificados: desactivar a verificación do proxy elimina a comprobación de identidade do intermediario en lugar de instalar a autoridade que falta.