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 שתומכת ב-proxy של HTTPS. נתיבי החבילות מייצגים את קבוצות האמון המיועדות: PROXY_CAINFO מאמת את המתווך; CAINFO מאמת את ה-TLS של היעד. השמיטו עקיפה מפורשת כאשר האמון הקיים כבר מכסה את החיבור הזה.

הכתובת ב-PROXY מתארת את המאזין שלה. אין צורך בניחוש מספרי של PROXYTYPE. עבור מאזין HTTP רגיל הכתובת נשארת http:// גם עם יעד HTTPS. במקרה כזה, רשימת ה-proxy של HTTP מספקת מועמדים לנקודות קצה; חבילת ה-TLS של ה-proxy חלה רק כאשר המאזין באמת משתמש ב-TLS.

ספקו חשבון proxy דרך PROXYUSERNAME ו-PROXYPASSWORD בעת הצורך. שמרו על אימות תעודות: השבתת אימות ה-proxy מסירה את בדיקת זהות המתווך במקום להתקין את הרשות החסרה.

מאמרים קשורים