Set CONNECT op foardat de Asio-TLS-hânskip begjint
Brûk de folgjende laach fan in Asio SSL-stream foar de gewoane HTTP-proxy-útwikseling en start dêrnei TLS troch de akseptearre tunnel.
Foar ssl::stream<tcp::socket> fia in gewoane HTTP-proxy brûk jo de rauwe transportlaach foardat jo it freegje om TLS nei de bestimming te dwaan:
auto& transport = tlsStream.next_layer();- Ferbyn dy transportlaach oan de proxy-host en -poart. Foar in tastiene iepenbiere HTTPS-bestimming sûnder ynstelde proxy-gegevens biedt de HTTP-proxylist kandidaat-einpunten; kontrolearje dat de kandidaat de frege tunnel tastiet.
- Stjoer CONNECT mei de authority fan de bestimming, bygelyks
api.example:443, en analysearje de folsleine antwurdkoppen op 'e rauwe transportlaach. In slagge 2xx iepenet de tunnel; in ôfwizing bliuwt in HTTP-proxy-antwurd. - Konfigurearje de hostnamme fan de bestimming, de fereaske SNI, fertrouwenswoartels en peer-ferifikaasje, en start dan de kliïnt-hânskip op
tlsStream. - Nei in slagge TLS brûk jo lêzen en skriuwen fan 'e SSL-stream foar de applikaasje. It folgjende laach direkt lêze op dat stuit giet om TLS-ferwurking hinne.
Drage alle oerskot fan 'e HTTP-parser nei de folgjende stap. Asio hat oerladen foar bufferbe hanthanneling; it weismiten fan in sturt dy't de parser besit kin bytes ferlieze dy't al fan 'e socket lêzen binne.
Mei dit ienfâldige type berikke next_layer en lowest_layer beide TCP. Mear omslaggen kinne se ferskille litte, dus kies de ynterface dy't it echte wire-protokol fan 'e proxy draacht. In HTTPS-proxy foeget noch in TLS-stap ta en leit bûten dizze platte-tekst-CONNECT-sekwinsje.