Naudokite atskirus TLS kontekstus urllib3 tarpiniam serveriui ir svetainei
Įkelkite HTTPS tarpinio serverio kliento sertifikatą į proxy_ssl_context, palikdami paskirties pasitikėjimą ir bet kokią paskirties kliento tapatybę 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')Naudokite tikrus patvirtintus failus. proxy-roots.pem tikrina tarpininką; proxy-client.pem ir atitinkamas privatus raktas identifikuoja šį klientą tam tarpininkui. origin_tls išlaiko atskirą paskirties pasitikėjimo politiką.
Tarpinio serverio URL https schema yra būtina tam pirmajam TLS mainams. HTTPS tikslui urllib3 tada siunčia CONNECT išorinėje TLS sesijoje ir atlieka svetainės TLS per tunelį.
Jei svetainė taip pat reikalauja kliento sertifikato, įdėkite jį į origin_tls. Tarpinio serverio tapatybės pakartotinis naudojimas ten autentifikuotų kitą ryšį.
Įprastas HTTP tarpinis serveris, perduodantis HTTPS, neturi išorinio TLS rankos paspaudimo. Papildomas HTTP 407 taip pat atskiras: kliento sertifikato pateikimas nesuteikia vartotojo vardo/slaptažodžio prisijungimo duomenų.