nghttp2 api.binance.com ssl ошибка - PullRequest
       71

nghttp2 api.binance.com ssl ошибка

0 голосов
/ 29 апреля 2018

Я хочу написать клиент для API binance.com, используя http / 2. Для этого я пробую библиотеку nghttp2, я вставил тестовый вызов API в их пример кода :

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");

[...]

    auto req = sess.submit(ec, "GET", "https://api.binance.com/api/v1/ping");

[...]

Однако в обработчике ошибок он всегда говорит мне

сбой квитирования оповещения sslv3

Я не знаю, как это отладить. Что я могу сделать, чтобы понять, почему это не работает? Я пытался изменить открытие при создании контекста tls на другие вещи, например tlsv12, но ни одна из них не работает. Если он действительно пытается использовать sslv3, неудивительно, что он не работает, так как тест ssl на сайте api.binance.com не сообщает о поддержке sslv3. Тестирование на самом nghttp2.org я не получаю эту ошибку. Что-то в согласовании SSL где-то идет не так. Но как я могу увидеть, где?

1 Ответ

0 голосов
/ 03 мая 2018

Эта проблема исправлена: https://github.com/nghttp2/nghttp2/pull/1173.

Так что, если вы спешите и не хотите ждать выхода nghttp2 1.32, вы можете проверить ветку master. Я собрал nghttp из исходного кода, так что я могу сказать, что это требует времени, но это просто.

...