urllib3 හි proxy සහ වෙබ් අඩවිය සඳහා වෙන වෙනම TLS සන්දර්භ භාවිත කරන්න
HTTPS proxy හි සේවාලාභී සහතිකය 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 ගමනාන්තයේ වෙනම විශ්වාස ප්රතිපත්තිය රඳවා ගනී.
proxy URL හි https ක්රමය එම පළමු TLS හුවමාරුව සඳහා අත්යවශ්ය වේ. HTTPS ඉලක්කයක් සඳහා, urllib3 පසුව බාහිර TLS සැසිය තුළ CONNECT යවා උමඟ හරහා වෙබ් අඩවි TLS සිදු කරයි.
වෙබ් අඩවියට ද සේවාලාභී සහතිකයක් අවශ්ය නම්, එය origin_tls මත තබන්න. එහි proxy අනන්යතාව නැවත භාවිත කිරීම වෙනස් සම්බන්ධතාවයක් සත්යාපනය කරනු ඇත.
HTTPS රැගෙන යන සාමාන්ය HTTP proxy ට බාහිර TLS අත්වැල් ගැසීමක් නොමැත. අතිරේක HTTP 407 ද වෙනමය: සේවාලාභී සහතිකයක් සැපයීම පරිශීලක නාමය/මුරපද අක්තපත්ර සපයන්නේ නැත.