Asio SSL 错误 "handshake: no protocols available"

Asio SSL error "handshake: no protocols available"

我正在尝试使用 Asio(单机版)通过 SSL 连接到 gmail。

当我调用 handshake 时出现此错误:

handshake: no protocols available

代码如下:

asio::ssl::context sslContext(asio::ssl::context::sslv3);
sslContext.set_default_verify_paths();
asio::io_context ioc;
typedef asio::ip::tcp::socket Socket;
asio::ssl::stream<Socket> socket(ioc, sslContext)
auto endpointIt = resolver.resolve("smtp.gmail.com", to_string(465));
asio::connect(socket.lowest_layer(), endpointIt);
socket.lowest_layer().set_option(tcp::no_delay(true));
socket.set_verify_mode(asio::ssl::verify_peer);
socket.set_verify_callback(asio::ssl::rfc2818_verification(serverUrl));
try{
    socket.handshake(SslSocket::client);
}
catch(const std::exception& e){
    cout << e.what() << endl;
}

我正在使用 Ubuntu 18.04。 可能是什么问题?

设法解决它替换:

sslContext.set_default_verify_paths();

作者:

sslContext.add_verify_path("/etc/ssl/certs");

虽然不能移植,但至少现在可以用了。