Asio TLS ह्यान्डसेक सुरु गर्नु अघि CONNECT स्थापना गर्नुहोस्
सामान्य HTTP प्रोक्सी विनिमयका लागि Asio SSL स्ट्रिमको अर्को तह प्रयोग गर्नुहोस्, त्यसपछि स्वीकृत टनेलबाट TLS सुरु गर्नुहोस्।
सामान्य HTTP प्रोक्सीमार्फत ssl::stream<tcp::socket> का लागि, गन्तव्यमा TLS गर्न भन्नु अघि यसको कच्चा यातायात प्रयोग गर्नुहोस्:
auto& transport = tlsStream.next_layer();- त्यो यातायातलाई प्रोक्सी होस्ट र पोर्टमा जोड्नुहोस्। प्रोक्सी प्रमाणहरू नराखी अनुमति दिइएको सार्वजनिक HTTPS गन्तव्यका लागि HTTP प्रोक्सी सूची ले उम्मेदवार अन्त्य बिन्दुहरू दिन्छ; उम्मेदवारले अनुरोध गरिएको टनेल अनुमति दिन्छ कि जाँच्नुहोस्।
- गन्तव्यको authority नाम दिँदै CONNECT पठाउनुहोस्, जस्तै
api.example:443, र कच्चा यातायातमा पूर्ण प्रतिक्रिया हेडरहरू पार्स गर्नुहोस्। सफल 2xx ले टनेल खोल्छ; अस्वीकृति HTTP प्रोक्सी प्रतिक्रिया नै रहन्छ। - गन्तव्यको होस्टनाम, आवश्यक SNI, विश्वास मूल र सहकर्मी प्रमाणीकरण कन्फिगर गर्नुहोस्, त्यसपछि
tlsStreamमा क्लाइन्ट ह्यान्डसेक सुरु गर्नुहोस्। - TLS सफल भएपछि, अनुप्रयोगका लागि SSL स्ट्रिम पढ्ने र लेख्ने प्रयोग गर्नुहोस्। त्यो बेला अर्को तह सिधै पढ्नुले TLS प्रशोधन बाइपास गर्छ।
HTTP पार्सरको कुनै पनि बाँकी अंश अर्को चरणमा लैजानुहोस्। Asio मा बफर गरिएका ह्यान्डसेक ओभरलोडहरू छन्; पार्सरको स्वामित्वको पुच्छर फ्याँक्दा सकेटबाट पहिले नै पढिएका बाइटहरू हराउन सक्छन्।
यो सरल प्रकारसँग next_layer र lowest_layer दुवै TCP मा पुग्छन्। थप र्यापरहरूले तिनीहरूलाई फरक बनाउन सक्छन्, त्यसैले प्रोक्सीको वास्तविक वायर प्रोटोकल बोक्ने इन्टरफेस छान्नुहोस्। HTTPS प्रोक्सीले अर्को TLS चरण थप्छ र यो स्पष्ट-पाठ CONNECT क्रमभन्दा बाहिर हुन्छ।