it-swarm-es.com

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

Si se alojan varios nombres de host en la misma IP, no es sencillo permitir que admitan https. ¿Cuáles son las mejores opciones en términos de compatibilidad con navegadores y/o compatibilidad con servidores web?

22
Erlend

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

Una de las desventajas es que los navegadores más antiguos no son compatibles con esto, por lo que, dependiendo del sitio, es posible que no se pueda usar.

Editar: Solo para actualizar 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).

18
Rory McCune

Hay dos formas: o todos los sitios usan el mismo certificado (en cuyo caso necesita una forma de hacer que el navegador del cliente acepte el certificado independientemente del sitio con el que el cliente pretendía contactar), o selecciona el certificado correcto según el sitio. al que el cliente quiere conectarse (en cuyo caso tienes que obtener esa información de una forma u otra).

Para la primera, considere RFC 2818 , que especifica lo que el navegador realmente espera del certificado del servidor. El navegador desea conectarse a una URL, que incluye una parte del nombre del servidor (después de https:// pero antes del próximo /); 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 de 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 en absoluto, o si no hay una extensión del nombre alternativo del sujeto en el certificado del servidor, se utiliza el nombre común en subjectDN. El carácter comodín "* "se puede utilizar para hacer coincidir" cualquier "parte del nombre, pero no todos los navegadores lo admiten de forma fiable.

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

La segunda forma implica Indicación del nombre del servidor , que es una extensión de SSL. Cuando se usa esta extensión, el cliente anuncia el nombre del servidor previsto con suficiente antelación en el protocolo de enlace, de modo que el servidor puede elegir qué certificado usar según el 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 aún común (según Estadísticas globales de StatCounter , en octubre de 2012, todavía hay más del 12% de los usuarios de la Web que usan IE 8.0, presumiblemente muchos de ellos en WinXP - tenga en cuenta que dado que el recurso compartido de WinXP es el 27% del sistema operativo, se puede concluir que más de la mitad de los usuarios de WinXP se han cambiado a un Internet Explorer): deshacerse del 12% de la audiencia potencial del sitio es una decisión política no trivial.

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

5
Thomas Pornin

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

3

Hasta donde yo sé, para la mayoría de los servidores web, si tiene que tener diferentes nombres de host y deben estar en la misma IP (es mejor optar por IP virtuales, pero dejemos eso), necesitará usar puertos diferentes.
P.ej. 443, 444, 445, etc.

Sin embargo, no siempre es tan intuitivo para el usuario ...

2
AviD

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

Los certificados comodín también pueden funcionar, pero deben tener dos elementos principales comunes (* .example.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.

2