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.

Artikli relatati