1

我无法让 SSL 与 asio 库一起使用。

这就是我设置服务器部分的方式。

serverServicePtr->network_context->set_options(boost::asio::ssl::context::default_workarounds| boost::asio::ssl::context::no_sslv2 );
serverServicePtr->network_context->set_password_callback(boost::bind(&ServerService::GetPassword));
serverServicePtr->network_context->use_private_key_file("privkey.pem", boost::asio::ssl::context::pem);
...
clientSocket->handshake( boost::asio::ssl::stream_base::server );

客户部分:

boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
ctx.load_verify_file("pubkey.pem");

ctx.set_verify_mode(boost::asio::ssl::verify_peer);
ctx.set_verify_callback(boost::bind(&verify_certificate, _1, _2));  

boost::asio::ssl::stream<boost::asio::ip::tcp::socket> s(io_service, ctx);
boost::asio::connect(s.lowest_layer(), iterator);
s.lowest_layer().set_option(boost::asio::ip::tcp::no_delay(true));  
s.handshake(boost::asio::ssl::stream_base::client);

握手失败。服务器说“握手:没有共享密码”,客户端只是说。该服务器拒绝客户端。

我的问题是,哪里出了问题?我错过了什么?也许,我生成的钥匙错了?如何为 asio 生成它们?

4

0 回答 0