Як увімкнути TLS SNI за допомогою boost::beast

Спочатку підключіть необхідний заголовок:

enable_tls_sni_boostbeast.cpp
#include <openssl/ssl.h>

Після ініціалізації boost::beast::ssl_stream додайте наступний код (де host — це std::string, що містить ім’я хоста для підключення, наприклад api.ipify.org):

tls_sni_set_hostname.cpp
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};
}

Оригінальне джерело: офіційний приклад HTTPS-клієнта boost::beast


Дивіться схожі статті за категоріями: Boost C/C++