如何在C或C++中的OpenSSL上实现服务器名称指示(SNI)?
有没有现实世界的例子?
我在FreeBSD-8.2中使用OpenSSL 0.9.8q.我的系统上有3个虚拟主机,并希望在一台服务器上实现SNI以服务所有3个虚拟主机.
我每个都有3个单独的证书,在我的ssl-server代码中,我必须以某种方式找出客户端请求的域名是什么,并使用相应的证书文件.为此,我编写了一个名为的函数,get_ssl_servername_cb并将其作为回调函数传递给SSL_CTX_set_tlsext_servername_callback.这样,在回调函数中,我可以得到客户端请求的域名.
但我的问题是,这个回调函数正在执行函数后执行SSL_accept,但我必须在使用SSL_new命令之前选择并使用相应的证书,这是执行之前的方式SSL_accept.
所以我的问题是,我如何使用SSL_CTX_set_tlsext_servername_callbackSNI函数?