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')

Tumia faili zilizoidhinishwa halisi. proxy-roots.pem huthibitisha mpatanishi; proxy-client.pem na ufunguo wake wa faragha unaolingana humtambulisha mteja huyu kwa mpatanishi huyo. origin_tls huhifadhi sera tofauti ya uaminifu ya lengo.

Mpango https wa URL ya proksi ni muhimu kwa mabadilishano ya kwanza ya TLS hayo. Kwa lengo la HTTPS, urllib3 hisha CONNECT ndani ya kikao cha nje cha TLS na hufanya TLS ya tovuti kupitia handaki.

Ikiwa tovuti pia inahitaji cheti cha mteja, kiweke kwenye origin_tls. Kutumia tena utambulisho wa proksi hapo kungeidhinisha muunganisho mwingine.

Proksi ya kawaida ya HTTP inayobeba HTTPS haina handshake ya nje ya TLS. 407 ya ziada ya HTTP pia ni tofauti: kutoa cheti cha mteja hakutoi vitambulisho vya jina la mtumiaji/nenosiri.

Makala zinazohusiana