Looge CONNECT enne Asio TLS-i kätluse algust
Kasutage Asio SSL-voo järgmist kihti tavaliseks HTTP-puhverserveri vahetuseks ja käivitage seejärel TLS vastuvõetud tunnelis.
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();- Ü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.
- 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. - Seadistage sihtkoha hostinimi, nõutav SNI, usaldusjuured ja partneri kontroll, seejärel alustage kliendi kätlust
tlsStreamjuures. - 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.