urllib3 இன் ப்ராக்ஸி மற்றும் இணையதளத்திற்கு தனி TLS சூழல்களைப் பயன்படுத்துங்கள்
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 இலக்கின் தனி நம்பிக்கைக் கொள்கையை வைத்திருக்கிறது.
ப்ராக்ஸி URL இன் https திட்டம் அந்த முதல் TLS பரிமாற்றத்திற்கு அவசியம். HTTPS இலக்கிற்கு, urllib3 பின்னர் வெளி TLS அமர்வுக்குள் CONNECT அனுப்பி சுரங்கப்பாதை வழியாக இணையதள TLS ஐச் செய்கிறது.
இணையதளத்திற்கும் கிளையன் சான்றிதழ் தேவைப்பட்டால், அதை origin_tls இல் வையுங்கள். அங்கு ப்ராக்ஸி அடையாளத்தை மீண்டும் பயன்படுத்துவது வேறு இணைப்பை அங்கீகரிக்கும்.
HTTPS ஐ எடுத்துச் செல்லும் சாதாரண HTTP ப்ராக்ஸிக்கு வெளி TLS கைக்குலுக்கல் இல்லை. கூடுதல் HTTP 407 உம் தனியானது: கிளையன் சான்றிதழ் வழங்குவது பயனர்பெயர்/கடவுச்சொல் சான்றுகளை வழங்காது.