ssl::stream<tcp::socket> jaoks tavalise HTTP-puhverserveri kaudu kasutage selle töötlemata transporti enne, kui palute sellel sihtkohaga TLS-i teha:

auto& transport = tlsStream.next_layer();
  1. Ühendage see transport puhverserveri hosti ja pordiga. Lubatud avaliku HTTPS-sihtkoha jaoks, kus puhverserveri mandaate pole seadistatud, pakub HTTP-puhverserverite loend kandidaat-lõppunkte; kontrollige, kas kandidaat lubab soovitud tunnelit.
  2. Saatke CONNECT, nimetades sihtkoha authority väärtust, näiteks api.example:443, ja analüüsige täielikke vastuse päiseid töötlemata transpordil. Õnnestunud 2xx avab tunneli; keeldumine jääb HTTP-puhverserveri vastuseks.
  3. Seadistage sihtkoha hostinimi, nõutav SNI, usaldusjuured ja partneri kontroll, seejärel alustage kliendi kätlust tlsStream juures.
  4. Pärast TLS-i õnnestumist kasutage rakenduse jaoks SSL-voo lugemist ja kirjutamist. Järgmise kihi otsene lugemine selles punktis möödub TLS-i töötlemisest.

Viige HTTP-parseri ülejääk järgmisse etappi. Asiol on puhverdatud kätluse ülekoormused; parserile kuuluva saba äraviskamine võib kaotada pesast juba loetud baite.

Selle lihtsa tüübiga jõuavad nii next_layer kui ka lowest_layer TCP-ni. Rohkem ümbriseid võib need erinevaks muuta, seega valige liides, mis kannab puhverserveri tegelikku juhtmeprotokolli. HTTPS-puhverserver lisab veel ühe TLS-etapi ja jääb sellest lihttekstilisest CONNECT-jadast välja.

Seotud artiklid