Fi CONNECT mulẹ ṣaaju ki o to bẹrẹ Asio TLS handshake
Lo Layer isalẹ ti Asio SSL stream fun paṣipaarọ HTTP proxy lasan, lẹhinna bẹrẹ TLS nipasẹ tunnel ti a gba.
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();
- 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.
- 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. - Ṣ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. - 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.