Selección de certificado SSL basada en el encabezado del host: ¿es posible?


17

¿Es posible que un servidor web seleccione un certificado SSL para usar en función del encabezado del host de la conexión entrante, o es esa información que solo está disponible después de establecer la conexión SSL?

Es decir, ¿puede mi servidor web listado en el puerto 443 y usar el certificado foo.com si se solicita https://foo.com , y el certificado bar.com si se solicita https://bar.com o estoy tratando de hacerlo? algo imposible porque el servidor tiene que establecer una conexión SSL antes de saber lo que quiere el cliente?

Respuestas:


23

Históricamente, su primera declaración es precisa. Ahora, hay múltiples opciones:

  • Un certificado comodín si subdominios dentro del mismo dominio.
  • Un certificado SAN / UCC para especificar nombres alternativos para el certificado, pudiendo así servir múltiples certificados.
  • Se introdujo SNI para establecer la conexión SSL después del encabezado Host. Sin embargo, esto tiene un soporte limitado, ya que es más nuevo.

Esto y otras personas me han respondido varias veces en ServerFault. Sugeriría buscar más detalles a menos que tenga una pregunta específica.


44
Fui a buscar y no pude encontrar nada; Esta es probablemente una de esas cosas que solo es fácil de buscar si conoce la respuesta para poder incluirla en los términos de búsqueda. Gracias.
DrStalker

3
Si hay respuestas existentes en ServerFault, hubiera sido bueno vincularlas.
organicveggie

serverfault.com/search , @organicveggie.
Warner

3
SNI no establece la conexión SSL después del encabezado Host, pero incluye el nombre de host en el protocolo de enlace SSL. No es que importe si no eres un desarrollador de SSL.
Bart van Heukelom

Buscar Serverfault da esto como la respuesta. Eso significa que canónicamente cualquier otra pregunta es un duplicado de esta. Ese enlace que incluiste no tiene resultados.
Ian Boyd


3

Respuesta corta: no

HTTP está encapsulado dentro de SSL , por lo que cualquier información sobre la solicitud es inaccesible hasta que se haya establecido la conexión. Por lo tanto, hasta que se entregó un certificado al cliente. No hay forma de usar encabezados ni ninguna otra información cifrada, ya que todavía no están disponibles.

EDITAR: esto es cierto si quieres hoy en día ser un navegador cruzado y totalmente portátil. Como han dicho otros, hay algunos nuevos métodos emergentes que lo harán posible en el futuro cercano.


1

¿o es esa información que solo está disponible después de establecer la conexión SSL?

Correcto. La conexión SSL se establece antes de enviar cualquier parte de la solicitud HTTP (encabezado de host incluido).


2
Eso ya no es completamente exacto.
Warner
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.