Fun ssl::stream<tcp::socket> nipasẹ HTTP proxy lasan, kọkọ lo gbigbe aise rẹ ki o to beere fun TLS ibi-afẹde:

auto& transport = tlsStream.next_layer();
  1. So gbigbe yẹn pọ mọ host ati port proxy. Nigbati ibi-afẹde HTTPS gbangba ti a gba laaye ko ba ni awọn ẹri proxy ti a ṣeto, akojọ HTTP proxy n funni ni awọn aaye ipari oludije; ṣayẹwo pe oludije naa gba tunnel ti a beere laaye.
  2. Fi CONNECT ranṣẹ ti o n tọka authority ibi-afẹde, gẹgẹbi api.example:443, ki o si ṣe ayẹwo awọn akọle esi ni kikun lori gbigbe lasan. 2xx ti o ṣaṣeyọri ṣii tunnel; ikọsilẹ jẹ esi HTTP proxy ṣi.
  3. Ṣeto orukọ host ibi-afẹde, SNI ti o nilo, awọn gbongbo igbẹkẹle ati ijẹrisi peer, lẹhinna bẹrẹ handshake alabara lori tlsStream.
  4. Lẹhin ti TLS ba ṣaṣeyọri, lo kika ati kikọ nipasẹ SSL stream fun ohun elo naa. Kika Layer isalẹ taara ni akoko yẹn n kọja ilana TLS.

Gbe eyikeyi iyokù ti HTTP parser lọ si ipele ti o tẹle. Asio ni awọn overload handshake ti o ni buffer; sisọ iru ti parser ni le padanu awọn baiti ti a ti ka lati socket.

Ni iru rirọrun yii, next_layer ati lowest_layer mejeeji de TCP. Awọn epo diẹ sii le jẹ ki wọn yatọ, nitorina yan interface ti o gbe ilana waya gangan ti proxy. HTTPS proxy ṣafikun ipele TLS miiran ati pe ko si ninu ilana CONNECT ọrọ kedere yii.

Àwọn àpilẹ̀kọ tó jọra