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();
  1. 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.
  2. 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.
  3. Set vertsnavnið á málinum, neyðuga SNI, trúnaðarrøtur og javning av mótsvari upp, og byrja síðan klientshondtakið á tlsStream.
  4. 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.

Skyldar greinar