सामान्य HTTP प्रॉक्सीमधून ssl::stream<tcp::socket> साठी, गंतव्याकडे TLS करण्यास सांगण्यापूर्वी त्याचे कच्चे वाहतूक वापरा:

auto& transport = tlsStream.next_layer();
  1. ते वाहतूक प्रॉक्सी होस्ट आणि पोर्टशी जोडा. प्रॉक्सी ओळखपत्रे सेट न करता परवानगी असलेल्या सार्वजनिक HTTPS गंतव्यासाठी HTTP प्रॉक्सी यादी उमेदवार एंडपॉइंट देते; उमेदवार विनंती केलेल्या बोगद्यास परवानगी देतो का तपासा.
  2. गंतव्याची authority नाव घेऊन CONNECT पाठवा, उदाहरणार्थ api.example:443, आणि कच्च्या वाहतुकीवर संपूर्ण प्रतिसाद हेडर पार्स करा. यशस्वी 2xx बोगदा उघडते; नकार HTTP प्रॉक्सी प्रतिसादच राहतो.
  3. गंतव्याचे होस्टनाव, आवश्यक SNI, विश्वास मूळे आणि समकक्ष पडताळणी कॉन्फिगर करा, नंतर tlsStream वर क्लायंट हँडशेक सुरू करा.
  4. TLS यशस्वी झाल्यावर, अनुप्रयोगासाठी SSL स्ट्रीम वाचन आणि लेखन वापरा. त्या क्षणी पुढील स्तर थेट वाचल्यास TLS प्रक्रिया वगळली जाते.

HTTP पार्सरचा कोणताही अतिरिक्त भाग पुढील टप्प्यात न्या. Asio मध्ये बफर केलेल्या हँडशेकचे ओव्हरलोड आहेत; पार्सरच्या मालकीची शेपूट टाकून दिल्यास सॉकेटमधून आधीच वाचलेले बाइट गमावले जाऊ शकतात.

या सोप्या प्रकारासह next_layer आणि lowest_layer दोन्ही TCP पर्यंत पोहोचतात. अधिक रॅपर त्यांना वेगळे करू शकतात, म्हणून प्रॉक्सीचा प्रत्यक्ष वायर प्रोटोकॉल वाहून नेणारा इंटरफेस निवडा. HTTPS प्रॉक्सी आणखी एक TLS टप्पा जोडते आणि या स्पष्ट-मजकूर CONNECT क्रमाबाहेर आहे.

संबंधित लेख