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 ಕೂಡ ಪ್ರತ್ಯೇಕ: ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರ ನೀಡುವುದು ಬಳಕೆದಾರಹೆಸರು/ಪಾಸ್‌ವರ್ಡ್ ರುಜುವಾತುಗಳನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು