ניצט באַזונדערע TLS קאָנטעקסטן פֿאַר urllib3 ס פּראָקסי און וועבזײַטל
לאָדט דאָס קליענט־צערטיפֿיקאַט פֿון דעם HTTPS פּראָקסי אין proxy_ssl_context, און לאָזט די צוטרוי פֿון דער דעסטינאַציע און יעדער דעסטינאַציע־קליענט־אידענטיטעט אויף ssl_context.
import ssl
import urllib3
proxy_tls = ssl.create_default_context(cafile='proxy-roots.pem')
proxy_tls.load_cert_chain('proxy-client.pem', 'proxy-client.key')
origin_tls = ssl.create_default_context()
with urllib3.ProxyManager(
'https://proxy.example:8443',
proxy_ssl_context=proxy_tls,
ssl_context=origin_tls,
timeout=urllib3.Timeout(connect=5, read=15),
) as http:
response = http.request('GET', 'https://service.example/data')ניצט די טאַקע באַשטעטיקטע טעקעס. proxy-roots.pem באַשטעטיקט דעם מיטלמאַן; proxy-client.pem און זײַן פּאַסיקער פּריוואַטער שליסל אידענטיפֿיצירן דעם קליענט בײַ יענעם מיטלמאַן. origin_tls האַלט די באַזונדערע צוטרויספּאָליטיק פֿון דער דעסטינאַציע.
דאָס https סכעמע פֿון דער פּראָקסי־URL איז וויכטיק פֿאַר יענעם ערשטן TLS אויסטויש. פֿאַר אַן HTTPS ציל שיקט urllib3 דערנאָך CONNECT אין דער אויסערלעכער TLS סעסיע און פֿירט אויס די וועבזײַטל־TLS דורכן טונעל.
אויב דאָס וועבזײַטל פֿאָדערט אויך אַ קליענט־צערטיפֿיקאַט, לייגט עס אויף origin_tls. צוריקניצן די פּראָקסי־אידענטיטעט דאָרטן וואָלט באַשטעטיקט אַן אַנדער פֿאַרבינדונג.
אַ געוויינטלעכער HTTP פּראָקסי וואָס פֿירט HTTPS האָט נישט קיין אויסערלעכן TLS הענטשקע. אַן עקסטרע HTTP 407 איז אויך באַזונדער: געבן אַ קליענט־צערטיפֿיקאַט גיט נישט קיין באַניצער־נאָמען/פּאַראָל באַשײַנונגען.