Boost SSL проверяет просроченные и самоподписанные сертификаты

Я использую Boost asio для подключения к сайту через HTTPS. Я хочу, чтобы это было успешным только в том случае, если сертификат действителен, не имеет срока действия, не подписан самостоятельно и т. Д. К сожалению, кажется, что он всегда работает независимо. Вот мой код:

try
{
    asio::io_service ioService;
    asio::ssl::context sslContext(asio::ssl::context::sslv3_client);

    sslContext.load_verify_file("cacert.pem");

    asio::ip::tcp::resolver resolver(ioService);
    asio::ip::tcp::resolver::query query("self-signed.badssl.com", "443");
    asio::ip::tcp::resolver::iterator endpointIterator = resolver.resolve(query);

    boost::asio::ssl::stream<boost::asio::ip::tcp::socket> socket(ioService, sslContext);

    ioService.run();

    // Enable SSL peer verification.
    socket.set_verify_mode(asio::ssl::verify_peer | asio::ssl::verify_fail_if_no_peer_cert);

    asio::connect(socket.lowest_layer(), endpointIterator);

    socket.handshake(asio::ssl::stream_base::client);

    boost::asio::streambuf request;
    std::ostream requestStream(&request);
    requestStream << "GET / HTTP/1.0\r\n";
    requestStream << "Host: self-signed.badssl.com\r\n";
    requestStream << "Accept: */*\r\n";
    requestStream << "Connection: close\r\n\r\n";

    asio::write(socket, request);

И так далее. Если я используюset_verify_callback() и вернутьсяfalse от обратного вызова, соединение не удается, ноpreverified всегда кажется правдой, даже дляhttps://self-signed.badssl.com/, Конечно, это не так?

Ответы на вопрос(2)

Ваш ответ на вопрос