¿Cuál es la mejor opción para configurar varios sitios que admiten SSL en la misma IP?

23

Si varios nombres de host están alojados en la misma IP, no es sencillo permitirles admitir https. ¿Cuáles son las mejores opciones en términos de soporte de navegador y / o soporte de servidor web?

    
pregunta Erlend 11.11.2010 - 23:32
fuente

5 respuestas

19

Por lo que he visto "Indicación del nombre del servidor" es la principal forma de lograr esto en este momento.

Una de las desventajas es que los navegadores más antiguos no lo admiten, por lo que, dependiendo del sitio, es posible que no se pueda utilizar.

Editar: solo para actualizar siguiendo los comentarios de @ D.W. y @ Piskvor, parece que ahora hay una lista de navegadores compatibles y no compatibles en la página de Wikipedia vinculada.

Todos los navegadores populares admiten SNI, incluidas todas las versiones de Internet Explorer en Windows Vista y posteriores. Internet Explorer 6, 7 y 8 en Windows XP fueron los principales navegadores que no admitían SNI, pero ya no reciben actualizaciones de seguridad desde abril de 2014.

    
respondido por el Rоry McCune 11.11.2010 - 23:35
fuente
5

Hay dos formas: todos los sitios usan el mismo certificado (en cuyo caso necesita una manera de hacer que el navegador del cliente acepte el certificado, independientemente del sitio al que el cliente desea contactar), o seleccione el certificado correcto dependiendo de en el sitio al que el cliente desea conectarse (en cuyo caso debe obtener esa información de alguna manera u otra).

Para la primera forma, considere RFC 2818 , que especifica qué espera realmente el navegador del certificado de servidor. El navegador desea conectarse a una URL, que incluye una parte del nombre del servidor (después de https:// pero antes de la siguiente / ); El navegador quiere encontrar ese nombre en el certificado del servidor. Los detalles se encuentran en la sección 3.1. Básicamente, la extensión del Nombre alternativo del sujeto en el certificado se analiza en busca de nombres del tipo dNSName , y uno de ellos debe coincidir con el nombre del servidor en la URL. Si la extensión del Nombre alternativo del sujeto no contiene dNSName , o si no hay una extensión del Nombre alternativo del sujeto en el certificado del servidor, entonces se usa el Nombre común en el subjectDN . El carácter comodín " * " se puede usar para hacer coincidir "cualquier" parte del nombre, pero esto no es compatible con todos los navegadores.

Por lo tanto, para admitir varios sitios en la misma IP y puerto, use un certificado que muestre todos los nombres de sitios en una extensión de Nombre alternativo del sujeto. Esto tiene algunos inconvenientes, por ejemplo, revela todos los nombres del sitio (uno simplemente tiene que conectarse y ver el certificado); además, debe obtener un nuevo certificado cada vez que agregue un nuevo sitio. Finalmente, su proveedor de certificados podría hacer las cosas un poco más difíciles o caras (por ejemplo, los certificados gratuitos de StartSSL son solo de dominio único; para obtener un certificado con varios dominios, debe pagar).

La segunda forma involucra la Indicación del nombre del servidor , que es una extensión de SSL. Al usar esta extensión, el cliente anuncia el nombre del servidor deseado con la suficiente anticipación en el protocolo de enlace, para que el servidor pueda elegir qué certificado usar dependiendo del sitio con el que el cliente quiera hablar. Desafortunadamente, el soporte para SNI no está disponible con Internet Explorer en Windows XP, una combinación todavía común (de acuerdo con estadísticas globales de StatCounter , a partir de octubre En 2012, todavía hay más del 12% de los usuarios de la Web que usan IE 8.0, probablemente muchos de ellos en WinXP. Tenga en cuenta que dado que el recurso WinXP es el 27% del sistema operativo, se puede concluir que más de la mitad de los usuarios de WinXP tienen cambiado a un navegador que no sea IE). Deshacerse del 12% de la audiencia potencial del sitio es una decisión de política no trivial.

Además, con SNI, el software server debe admitirlo y estar configurado para usarlo. Consulte esta página para saber cómo hacerlo con Apache y mod_ssl.

    
respondido por el Thomas Pornin 24.11.2012 - 22:54
fuente
3

Otra opción es usar un certificado SSL comodín si sus nombres de host lo permiten.
Entonces tendrá un certificado con CN = *. Yourdomain.com que cubre www.yourdomain.com, mail.yourdomain.com, ftp.yourdomain.com y así sucesivamente.

    
respondido por el Eugen Constantin Dinca 12.11.2010 - 09:49
fuente
2

Por lo que sé, para la mayoría de los servidores web, si tiene que tener diferentes nombres de host y deben estar en la misma IP (mejor ir para IP virtuales, pero dejemos eso), tendrá que usar diferentes puertos.
P.ej. 443, 444, 445, etc.

Aunque no siempre es tan intuitivo para el usuario ...

    
respondido por el AviD 11.11.2010 - 23:47
fuente
2

Es posible que desee considerar Subject Alternative Names , ya que son más flexibles que Server Name Indication (¡y pueden funcionar en navegadores más antiguos!). Los SAN permiten que se use un solo certificado para hasta 25 nombres DNS o más, dependiendo de a quién le compre su SAN. Cada dominio puede tener un TLD diferente (dominio de nivel superior) como .com, .org, etc.

Los certificados comodín también pueden funcionar, pero tienen que tener dos elementos principales comunes (* .ejemplo.com). Sin embargo, es probable que pierda la mayor parte del seguro de comercio electrónico de su proveedor con esta clase de certificados; y no creo que sea posible obtener un certificado EV de este tipo.

    
respondido por el random65537 01.12.2010 - 06:41
fuente

Lea otras preguntas en las etiquetas