Uża kuntesti TLS separati għall-proxy u s-sit web ta urllib3
Illowdja ċ-ċertifikat tal-klijent tal-proxy HTTPS f proxy_ssl_context, u ħalli l-fiduċja tad-destinazzjoni u kwalunkwe identità tal-klijent tad-destinazzjoni fuq 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')Uża l-fajls approvati attwali. proxy-roots.pem jivverifika l-intermedjarju; proxy-client.pem u ċ-ċavetta privata tiegħu li taqbel jidentifikaw dan il-klijent lil dak l-intermedjarju. origin_tls iżomm il-politika ta fiduċja separata tad-destinazzjoni.
L-iskema https tal-URL tal-proxy hija essenzjali għal dak l-ewwel skambju TLS. Għal mira HTTPS, urllib3 imbagħad jibgħat CONNECT fis-sessjoni TLS ta barra u jwettaq it-TLS tas-sit web permezz tal-mina.
Jekk is-sit web jeħtieġ ukoll ċertifikat tal-klijent, poġġih fuq origin_tls. L-użu mill-ġdid tal-identità tal-proxy hemmhekk jawtentika konnessjoni differenti.
Proxy HTTP ordinarju li jġorr HTTPS m għandux handshake TLS ta barra. 407 HTTP addizzjonali wkoll huwa separat: l-għoti ta ċertifikat tal-klijent ma jipprovdix kredenzjali tal-isem tal-utent/password.