Налаштовуйте пакети CA для проксі та джерела в PycURL окремо
Використовуйте https-URL проксі для 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, яка підтримує HTTPS-проксі. Шляхи до пакетів позначають потрібні набори довіри: PROXY_CAINFO перевіряє посередника; CAINFO перевіряє TLS призначення. Не задавайте явне перевизначення, якщо наявна довіра вже покриває це з'єднання.
URL у PROXY описує свій слухач. Числове припущення PROXYTYPE не потрібне. Для звичайного HTTP-слухача URL залишається http://, навіть якщо призначення HTTPS. У такому разі список HTTP-проксі дає кандидатів на кінцеві точки; пакет TLS проксі застосовується лише тоді, коли слухач справді використовує TLS.
За потреби вкажіть обліковий запис проксі через PROXYUSERNAME і PROXYPASSWORD. Зберігайте перевірку сертифікатів: вимкнення перевірки проксі прибирає перевірку автентичності посередника, а не встановлює відсутній засвідчувальний центр.