nghttp2 api.binance.com ssl error
我想使用http / 2为binance.com的api编写一个客户端。
为此,我正在尝试库nghttp2,将对api的测试调用放入其示例代码中:
1 2 3 4 5 6 7 8 9 10 11 | 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"); |
[...]
1 | auto req = sess.submit(ec,"GET","https://api.binance.com/api/v1/ping"); |
[...]
但是它总是以错误处理程序告诉我
sslv3警报握手失败
我不知如何调试它。 我什至可以做些什么才能理解为什么它不起作用? 我试图将tls上下文创建中的打开更改为其他内容,例如tlsv12,但没有任何效果。 如果它确实在尝试使用sslv3,则它不起作用也就不足为奇了,因为api.binance.com的ssl测试报告不支持sslv3。
在nghttp2.org本身上进行测试,我没有收到此错误。 关于SSL协商的某些地方出了问题。 但是我怎么看呢?
此问题已修复:https://github.com/nghttp2/nghttp2/pull/1173。
因此,如果您急于不想等待nghttp2 1.32发布,可以签出master分支。 我确实是从源代码构建nghttp的,所以可以说这很费时间,但是构建起来很简单。