title: nghttp2 api.binance.com ssl error
body: <p>I want to write a client for the api of binance.com using http/2.
  For this I am trying the library nghttp2, I've put in a test call to the api into their <a href="https://nghttp2.org/documentation/libnghttp2_asio.html#receive-server-push-and-enable-ssl-tls" rel="nofollow noreferrer">example code</a>:</p>
  
  <pre><code>int main(int argc, char *argv[]) {
    boost::system::error_code ec;
    boost::asio::io_service io_service;
  
    boost::asio::ssl::context tls(boost::asio::ssl::context::sslv23);
    tls.set_default_verify_paths();
    // disabled to make development easier...
    // tls.set_verify_mode(boost::asio::ssl::verify_peer);
    configure_tls_context(ec, tls);
  
    session sess(io_service, tls, "api.binance.com", "443");
  </code></pre>
  
  <p>[...]</p>
  
  <pre><code>    auto req = sess.submit(ec, "GET", "https://api.binance.com/api/v1/ping");
  </code></pre>
  
  <p>[...]</p>
  
  <p>However it always ends up in the error handler telling me </p>
  
  <p>sslv3 alert handshake failure</p>
  
  <p>I am at a loss how to debug this. What can I even do to understand why this is not working? I've tried to change the open on the tls context creation to other things, like tlsv12, but none work. If it's really trying to use sslv3 it's no surprise that it doesn't work, as a ssl test of api.binance.com reports no support for sslv3.
  Testing on nghttp2.org itself I do not get this error. Something about the SSL negotiation goes wrong somewhere. But how can I see where?</p>