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 مۇ ئايرىم: خېرىدار گۇۋاھنامىسى بېرىش ئىشلەتكۈچى ئىسمى/پارول ئۇچۇرىنى بەرمەيدۇ.