¿Qué certificados son necesarios para los subdominios de varios niveles?

111

Estoy trabajando en un sitio web con varios niveles de subdominios. Necesito protegerlos todos con SSL, y estoy tratando de determinar la estrategia de certificado correcta.

Esto es lo que necesito asegurar:

  • foo.com
  • www.foo.com
  • Cualquier combinación de city.state.foo.com. (Estos son estados de los Estados Unidos).

Entiendo que un certificado comodín solo puede cubrir un "nivel" de subdominio. Según RFC 2818 :

  

Los nombres pueden contener el carácter comodín * que se considera   coincide con cualquier componente de nombre de dominio único o fragmento de componente. P.ej.,   * .a.com coincide con foo.a.com pero no con bar.foo.a.com.   f * .com coincide con foo.com pero no con bar.com.

Lo que creo que necesito son los siguientes certificados:

  • *.foo.com , que coincidirá, por ejemplo, foo.com , www.foo.com . (Aunque no tengo claro si *.a.com coincide con a.com por sí mismo).
  • *.ny.foo.com para coincidir con new-york.ny.foo.com , buffalo.ny.foo.com , etc. Eventualmente necesitaré 50 certificados de este tipo para coincidir con todos los estados, una vez que nuestro sitio se expanda para servir a todos.

Mis preguntas son:

  • ¿Este esquema es correcto? En el escenario anterior, si un usuario visita ca.foo.com , ¿obtendrá el certificado para *.foo.com o para *.ca.foo.com ?
  • ¿Cómo puedo asegurarme de que los usuarios vean a todos estos subdominios como legítimos de nosotros? Por ejemplo, si un usuario visita foo.com , entonces mountain-view.ca.foo.com , y esos son certificados diferentes, ¿recibirán una advertencia? ¿Hay alguna forma de asegurar a su navegador que estos certificados comparten el mismo propietario?
pregunta Nathan Long 10.01.2012 - 14:06
fuente

4 respuestas

76

Teóricamente:

  • un * coincide exactamente con un nivel (por lo tanto, *.foo.com no no coincide con foo.com )
  • pero puede tener varios * en un nombre

Por lo tanto, si todas las implementaciones de SSL siguen fielmente RFC 2818 , solo necesita tres certificados, con nombres:

  • foo.com
  • *.foo.com
  • *.*.foo.com

y, si las implementaciones son realmente buenas para cumplir con RFC 2818 y las complejidades de X.509, incluso podría usar un certificado único que enumera las tres cadenas anteriores en su extensión de Asunto Alt Nombre .

Ahora, la teoría y la práctica coinciden perfectamente ... en teoría. Es posible que tenga sorpresas con lo que realmente hacen los navegadores. Te sugiero que lo pruebes; algunos ejemplos de certificados se pueden crear con la herramienta de línea de comandos OpenSSL (vea por ejemplo esta página para algunas pautas).

    
respondido por el Tom Leek 10.01.2012 - 14:44
fuente
34

RFC 6125 es bastante reciente y no está implementado por todos, pero intenta aclarar algunos de estos problemas. Reúne la especificación de identidad en RFC 2818 y RFC de otros protocolos. Le sugeriría que se adhiera a RFC 6125 si puede. Las secciones relevantes para los certificados comodín son 6.4.3 y 7.2 (lo que desalienta el uso de certificados comodín, de hecho).

De su pregunta no queda claro si desea ejecutar un solo servidor web (o al menos poder ejecutarlo todo con una sola dirección IP), o si puede tener un certificado por sitio (y por lo tanto una dirección IP por sitio, ya que SNI no está muy bien soportado en general).

Podría tener un solo certificado con varios nombres alternativos de sujeto (SAN). El problema proviene del caso con dos etiquetas comodín, que pueden no estar claramente especificadas ( *.*.foo.com ).

Si el comodín doble funciona, debería funcionar un certificado con estas 3 entradas de SAN DNS:

  • foo.com
  • *.foo.com
  • *.*.foo.com

Sin embargo, dado que es posible que no funcione (dependiendo de las implementaciones del cliente, que probablemente no estén bajo su control), y como puede enumerar los 50 estados, podría tener 52 entradas de DNS de SAN:

  • foo.com
  • *.foo.com
  • *.ny.foo.com
  • ... (uno para cada estado)
  

¿Cómo puedo asegurarme de que los usuarios vean todos estos subdominios como   legítimamente propiedad de nosotros? Por ejemplo, si un usuario visita foo.com, entonces   mountain-view.ca.foo.com, y esos son certificados diferentes, lo harán   ellos reciben una advertencia? ¿Hay alguna manera de asegurar su navegador que   estos certificados comparten el mismo propietario?

Esta es una pregunta difícil, ya que depende de qué tan familiarizados estén los usuarios con el proceso de verificación de certificados. Podría obtener un certificado de Validación ampliada (aunque creo que el certificado de comodín EV probablemente no esté permitido), lo que daría una barra verde. Esto daría alguna etiqueta de "propiedad" en la mayoría de los navegadores. Después de eso, las propias interfaces del navegador pueden ser confusas (por ejemplo, Firefox "que se ejecuta mediante (desconocido)" en la barra azul, lo que realmente no ayuda de ninguna manera). En última instancia, los usuarios podrían ir y verificar dentro de su certificado para ver a qué SAN se emitió el certificado. Sin embargo, dudo que muchos hagan esto y entiendan lo que significa.

    
respondido por el Bruno 10.01.2012 - 16:59
fuente
4

enlace dice

  

Más aún, los certificados ssl DigiCert WildCard son únicos en permitir   Puede proteger CUALQUIER subdominio de su dominio, incluidos múltiples niveles   de subdominios con un certificado. Por ejemplo, su comodín para   * .digicert.com com podría incluir server1.sub.mail.digicert.com como nombre alternativo del sujeto.

    
respondido por el TechNikh 02.04.2013 - 17:32
fuente
1

Puede usar un certificado de comodín o también puede utilizar un certificado con nombres de dominio alternativos. Personalmente, uso un certificado de StartSSL que me permite tener todos mis dominios listados en un solo certificado. Tengo algo como 10 dominios comodín y 15 otros ADNs, todos en el mismo certificado, de modo que puedo usar SSL en los sitios que tengo alojados en mi servidor.

    
respondido por el AJ Henderson 02.04.2013 - 18:41
fuente

Lea otras preguntas en las etiquetas