How to enable TLS SNI using boost::beast
First include the required header:
#include <openssl/ssl.h>
Once you have initialized theĀ boost::beast::ssl_stream
, add the following code (with host
being a std::string
containing the hostname to connect to such as api.ipify.org
):
if(!SSL_set_tlsext_host_name(stream.native_handle(), host.c_str())) {
beast::error_code ec{static_cast<int>(::ERR_get_error()), net::error::get_ssl_category()};
throw beast::system_error{ec};
}
Original source: boost::beast official HTTPS client example