简体   繁体   中英

Boost asio ssl authentication through http proxy

I have a boost client that needs to support connections through a proxy.

Currently I am able to connect to the proxy and successfully communicate with external servers with one exception - ssl servers.

The proxy is http and I need to connect/retreive information from https sites.

What my code does now connect to proxy asio::ip::tcp::socket _socket; -succeeds send CONNECT host: ssl server to the proxy (connected above) -succeeds

-- This is where I am stuck. How do I execute the handshake/send requests?

I found this old post

boost::asio handshake through http proxy?

The problem is: sslsocket_(socket_,context) //this does not compile (the constructor is expecting an io_Service not a socket) --using boost 1.52

Ok below is the code

//Parse the header and check the response

boost::asio::ssl::stream<boost::asio::ip::tcp::socket> _socket;
boost::asio::ip::tcp::socket _httpSocket;
...

int response= _httpHeader.getResult(header.c_str());
if(response==200) { 
boost::asio::ssl::context ctx(io_service,boost::asio::ssl::context::sslv23);
 _sslSocket(_httpSocket,ctx); //this fails 

Note:I copied the above from the post above,based on the post this part worked. It looks to me it should be _sslSocekt(io_service,ctx) but I don't see how that would help me }

I found the answer, what I needed to to is connect to the proxy using _socket.next layer. Then if the connection succeeds read/write the responses using _socket.lowest_layer()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM