我尝试使用Boost Asio连接到服务器(用Golang编写)。我可以连接和读/写没有加密,但我似乎无法获得SSL支持。基本上,每当我尝试握手时,我都会收到一个"错误的版本号"。
这是一个片段,展示了我是如何尝试设置它的。我没有尝试执行任何验证,只是进行连接。在代码中的这一点上,客户端已连接到服务器并交换了一些未加密的命令。
boost::asio::ssl::context ctx(*ios, boost::asio::ssl::context::tlsv12_client); //also tried sslv23, etc
ctx.set_verify_mode(boost::asio::ssl::context::verify_none);
this->sslSocket = new boost::asio::ssl::stream<boost::asio::ip::tcp::socket&>(*socket, ctx);
this->sslSocket->async_handshake(boost::asio::ssl::stream_base::client,
boost::bind(&MyConnection::handleHandshake, this,
boost::asio::placeholders::error));
&MyConnection::handleHandshake()
收到握手的结果。
所以问题是:
答案 0 :(得分:0)
我遇到了同样的问题,后来才知道我试图连接到端口 80 而不是 443(SSL 端口)。通过将端口更改为 443,问题得到解决。