如何在 C 或 C++ 中的 OpenSSL 上实现服务器名称指示(SNI)?
有没有可用的真实世界示例?
在客户端,您SSL_set_tlsext_host_name(ssl, servername)在启动 SSL 连接之前使用。
在服务器端,它有点复杂:
SSL_CTX();SSL_CTX()为每个使用添加服务器名称回调SSL_CTX_set_tlsext_servername_callback();SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name)。找出SSL_CTX使用该主机名的权利,然后将SSL对象切换SSL_CTX为SSL_set_SSL_CTX().OpenSSL 源代码分发目录中的s_client.c和s_server.c文件apps/实现了此功能,因此它们是了解如何完成此功能的好资源。