Set CONNECT upp, áðrenn Asio TLS-hondtakið byrjar
Nýt næsta lag í Asio SSL-streymi til vanliga HTTP-proxy-samskiftið og byrja síðan TLS gjøgnum tunnilin, sum varð góðtikin.
Fyri ssl::stream<tcp::socket> gjøgnum eina vanliga HTTP-proxy nýt tú tað ráa flutningslagið, áðrenn tú biður tað gera TLS til málið:
auto& transport = tlsStream.next_layer();- Set tað flutningslagið í samband við proxy-vertin og portið. Fyri eitt loyvt alment HTTPS-mál uttan skrásett proxy-viðurskifti bjóðar HTTP-proxy-listin møgulig endapunkta; kanna, um evnin loyvir tunnilin, sum verður biðin um.
- Send CONNECT við authority hjá málinum, til dømis
api.example:443, og greina tey fullu svarhøvdini á tí ráa flutningslaginum. Eitt væleydnað 2xx letur tunnilin upp; ein avsøgn verður verandi eitt HTTP-proxy-svar. - Set vertsnavnið á málinum, neyðuga SNI, trúnaðarrøtur og javning av mótsvari upp, og byrja síðan klientshondtakið á
tlsStream. - Tá TLS er eydnað, nýt lesingar og skrivingar á SSL-streyminum til forritið. At lesa næsta lag beinleiðis tá umferðir TLS-viðgerðina.
Ber eitt hvørt yvirskot frá HTTP-greinaranum víðari til næsta stig. Asio hevur yvirbyrðingar fyri buffrað hondtaki; at kasta ein hala, sum greinarin eigur, kann missa bytes, sum longu eru lisin úr sokkinum.
Við hesum einfalda slagnum náa bæði next_layer og lowest_layer TCP. Fleiri innbindingar kunnu gera tey ymisk, so vel tíð mótstøðuna, sum ber veruliga tráðprotokollina hjá proxynum. Ein HTTPS-proxy leggur eitt TLS-stig afturat og liggur uttanfyri hesa klártekst-CONNECT-røðuna.