Ar gyfer ssl::stream<tcp::socket> drwy brocsi HTTP cyffredin, defnyddiwch ei drafnidiaeth crai cyn gofyn iddo wneud TLS i'r cyrchfan:

auto& transport = tlsStream.next_layer();
  1. Cysylltwch y drafnidiaeth honno â gwesteiwr a phorth y procsï. Ar gyfer cyrchfan HTTPS gyhoeddus a ganiatawyd heb gyfrifon procsï wedi'u ffurfweddu, mae rhestr procsïau HTTP yn cynnig penau terfyn ymgeiswyr; gwiriwch fod yr ymgeisydd yn caniatáu'r twnnel y gofynnwyd amdano.
  2. Anfonwch CONNECT gan enwi awdurdod y cyrchfan, fel api.example:443, a dadansoddwch benawdau'r ymateb cyflawn ar y drafnidiaeth crai. Mae 2xx llwyddiannus yn agor y twnnel; mae gwrthodiad yn parhau'n ymateb procsï HTTP.
  3. Ffurfweddwch enw gwesteiwr y cyrchfan, yr SNI gofynnol, y gwreiddiau ymddiriedaeth a gwirio'r cyfoed, yna dechreuwch ysgwyd llaw'r cleient ar tlsStream.
  4. Ar ôl i TLS lwyddo, defnyddiwch ddarlleniadau ac ysgrifeniadau'r ffrwd SSL ar gyfer y rhaglen. Mae darllen yr haen nesaf yn uniongyrchol ar y pwynt hwnnw'n osgoi prosesu TLS.

Cludwch unrhyw weddill o'r parslydd HTTP i'r cam nesaf. Mae gan Asio orlwythiadau ysgwyd llaw byfferog; gall taflu cynffon sy'n eiddo i'r parslydd golli beitiau a ddarllenwyd eisoes o'r soced.

Gyda'r math syml hwn, mae next_layer a lowest_layer ill dau'n cyrraedd TCP. Gall mwy o wrapwyr eu gwneud yn wahanol, felly dewiswch y rhyngwyneb sy'n cario protocol gwifren wirioneddol y procsï. Mae procsï HTTPS yn ychwanegu cam TLS arall ac yn gorwedd y tu allan i'r dilyniant CONNECT testun plaen hwn.

Erthyglau cysylltiedig