Sirviendo múltiples dominios en una caja con SNI

Estoy usando OpenSSL 0.9.8q en FreeBSD-8.2. Tengo 3 hosts virtuales en mi sistema y quiero implementar SNI para servir a los 3 en un servidor.

Tengo 3 certificados separados, uno para cada uno, y en mi código de servidor SSL tengo que averiguar de alguna manera cuál es el nombre de dominio de la solicitud del cliente y usar el archivo de certificado apropiado en función de eso. Para esto escribí una función llamadaget_ssl_servername_cb y lo pasó como función de devolución de llamada aSSL_CTX_set_tlsext_servername_callback. De esta manera, en la función de devolución de llamada puedo obtener el nombre de dominio de la solicitud del cliente.

Pero mi problema es que esta función de devolución de llamada se ejecuta después de la ejecución deSSL_accept función, pero tengo que elegir y usar el certificado apropiado antes de usarSSL_new comando, que es mucho antes de la ejecución deSSL_accept.

Entonces mi pregunta es, ¿cómo puedo usarSSL_CTX_set_tlsext_servername_callback función para SNI?

Respuestas a la pregunta(1)

Su respuesta a la pregunta