43 boost::asio::ssl::context_base::method method =
44 boost::asio::ssl::context::sslv23)
47 boost::system::error_code ec;
49 if (sslVerifyFile.
empty())
53 if (ec && sslVerifyDir.
empty())
54 Throw<std::runtime_error>(boost::str(
55 boost::format(
"Failed to set_default_verify_paths: %s") %
63 if (!sslVerifyDir.
empty())
68 Throw<std::runtime_error>(boost::str(
69 boost::format(
"Failed to add verify path: %s") %
74 boost::asio::ssl::context&
103 boost::asio::ssl::stream<boost::asio::ip::tcp::socket>>::
107 boost::asio::ssl::stream<boost::asio::ip::tcp::socket&>>::
109 boost::system::error_code
112 boost::system::error_code ec;
113 if (!SSL_set_tlsext_host_name(strm.native_handle(), host.
c_str()))
116 static_cast<int>(::ERR_get_error()),
117 boost::asio::error::get_ssl_category());
121 strm.set_verify_mode(boost::asio::ssl::verify_none, ec);
131 boost::asio::ssl::stream<boost::asio::ip::tcp::socket>>::
135 boost::asio::ssl::stream<boost::asio::ip::tcp::socket&>>::
144 boost::system::error_code
147 boost::system::error_code ec;
151 strm.set_verify_mode(boost::asio::ssl::verify_peer, ec);
154 strm.set_verify_callback(
158 std::placeholders::_1,
159 std::placeholders::_2,
181 boost::asio::ssl::verify_context& ctx,
184 if (boost::asio::ssl::rfc2818_verification(domain)(preverified, ctx))
187 JLOG(j.
warn()) <<
"Outbound SSL connection to " << domain
188 <<
" fails certificate verification";
static bool rfc2818_verify(std::string const &domain, bool preverified, boost::asio::ssl::verify_context &ctx, beast::Journal j)
callback invoked for name verification - just passes through to the asio rfc2818 implementation.
HTTPClientSSLContext(std::string const &sslVerifyDir, std::string const &sslVerifyFile, bool sslVerify, beast::Journal j, boost::asio::ssl::context_base::method method=boost::asio::ssl::context::sslv23)
boost::system::error_code preConnectVerify(T &strm, std::string const &host)
invoked before connect/async_connect on an ssl stream to setup name verification.
boost::asio::ssl::context ssl_context_
boost::system::error_code postConnectVerify(T &strm, std::string const &host)
invoked after connect/async_connect but before sending data on an ssl stream - to setup name verifica...
boost::asio::ssl::context & context()