¿Necesito un certificado SSL por separado para una redirección de DNS?

17

Estoy implementando una aplicación multiinquilino donde mi aplicación aloja y sirve documentación técnica para el producto de un inquilino.

Ahora, el enfoque que yo consideraba era - alojo en la documentación docs.<tenant>.mycompany.comy pido a mi inquilino para configurar un registro CNAME DNS a punto docs.tenantcompany.coma docs.<tenant>.mycompany.com.

Quiero que el sitio esté habilitado para SSL con el certificado de mi inquilino. Quería saber si mi empresa inquilina tiene un certificado SSL comodín, ¿funcionará con esta configuración o tendrá que comprar un nuevo certificado SSL docs.tenantcompany.com?

codematix
fuente
Solo para aclarar, ¿tiene un comodín para * .mycompany.com?
zymhan
@WildVelociraptor sí tengo un certificado SSL comodín para*.mycompany.com
codematix
@codematix Para evitar cualquier duda, ¡un certificado comodín para *.example.com no coincidirá docs.tenantname.example.com ! El comodín es válido solo para un 'subdominio'; que coincidirá docs-tenantname.example.com , por ejemplo. El S3 de Amazon es un buen ejemplo de esto: el *.s3.amazonaws.comcertificado falla al acceder a un depósito con un punto, como www.example.com(que termina con un nombre de host como www.example.com.s3.amazonaws.com); dichos nombres de depósito son necesarios para el alojamiento web S3.
Calrion
Tenga en cuenta que el uso de un cname que apunta a su propio servidor significa que puede evitar la necesidad de un certificado proporcionado por el inquilino. Algunos proveedores de certificados (incluido letsencrypt.org ) admiten la validación de la propiedad del dominio a través de https. Como cuestión de mejores prácticas de seguridad, este enfoque es muy superior (ya se discutió en serverfault.com/a/765957/4480 ). Está bien permitir que su inquilino proporcione su propio certificado (aunque generarlo usted mismo es más fácil para el inquilino), pero NO debe proporcionarle un certificado de comodín.
Brian

Respuestas:

39

El nombre del certificado debe coincidir con lo que el usuario ingresó en el navegador, no con el registro DNS 'final'. Si el usuario ingresa docs.tenantcompany.com, su certificado SSL debe cubrirlo.

Si docs.tenantcompany.comes un CNAME para foo.example.com, el certificado no necesita cubrir foo.example.com, solo docs.tenantcompany.com.

Jason Martin
fuente
25

La respuesta de Jason es correcta. Pero solo para aclarar un poco los términos aquí, "redirección de DNS" es un nombre poco apropiado. DNS tiene registros CNAME (alias) que es un nombre que apunta a otro nombre. Pero no es una redirección. La traducción de nombre a nombre a IP ocurre en segundo plano y su navegador solo se preocupa por el nombre inicial.

Lo único que redirige son los servidores web donde el servidor le dice explícitamente a su navegador que vaya a otro lugar. Si su servidor web fue realmente haciendo una redirección a otro nombre, que sería realmente necesario CERT para ambos nombres porque su navegador en última instancia se conecta a dos de ellos por separado.

Ryan Bolger
fuente
2
gracias por corregirme. Tienes razón, no es redirección sino alias CNAME.
codematix
Mi cliente tiene un Server Acon dominio example.com. Hice un sitio web para él y mantuve el sitio en Server B. Mi cliente configuró su DNS A Recordque apunta dog.example.coma la dirección IP de mi servidor Server B. Ahora mi cliente está recibiendo SSL para dog.example.com. Mi pregunta es, ¿mi cliente tiene que darme la certificación SSL para que la coloque Server B? ¿O solo tiene que ponerlo Server A? ¿O qué más deberíamos hacer? Los dos estamos confundidos acerca de esto, ¡gracias!
user2875289
1
Si el registro A para dog.example.compuntos directamente a la IP de su servidor, entonces sí. Su servidor debe contener el certificado y la clave privada para ese nombre. El servidor A en su ejemplo es irrelevante.
Ryan Bolger
@RyanBolger Sí, tal como dijiste. Mi cliente solicitó un certificado dog.example.comy me envió el certificado y la clave privada. Los puse dentro Server By configuro Nginx para usarlos. Y todo funciona bien ahora. ¡Gracias!
user2875289
Solo una nota sobre un punto de tecnicismo; como ahora hay registros de "ALIAS", tampoco diría que CNAME son alias;]
Garet Claborn
9

Quería saber si mi empresa inquilina tiene un certificado SSL comodín, ¿funcionará con esta configuración o si se debe comprar un nuevo certificado SSL docs.tenantcompany.com?

Respuesta corta: No. Si su empresa inquilina tiene un comodín en el nombre *.tenantcompany.com, eso es suficiente para instalar en su servidor para cubrir los accesos a través de ese nombre. Si quieres hacer esto o no es otra historia.

Un certificado en el nombre docs.<tenant>.mycompany.com(por ejemplo, un certificado directo o un comodín *.<tenant>.mycompany.com) es inútil si el acceso siempre se realiza a través del docs.tenantcompany.comnombre.


Respuesta más larga

Suponga que navega https://docs.tenantcompany.comen un navegador razonable. El navegador ejecuta TLS sobre el protocolo HTTP. Se preocupa específicamente por dos cosas; ese:

  • El subsistema DNS del navegador y el sistema operativo devuelve la dirección IP de un host adecuado, que ejecuta un servidor web en un puerto adecuado en otro lugar de la red local o de Internet. Para el tráfico HTTPS (seguro), el puerto predeterminado es a 443menos que se anule en la URL.

  • Cuando el protocolo de enlace TLS se lleva a cabo entre el navegador y el servidor remoto, el servidor presenta un certificado de confianza que le permite proporcionar un servicio TLS en la dirección solicitada ( docs.tenantcompany.com).

DNS

El navegador ve DNS como un cuadro negro. Hace una llamada a una biblioteca DNS adecuada para solicitar una asignación de un nombre de dominio completo y amigable (FQDN) a una dirección IP adecuada (v4 o v6). No le importa cómo obtiene esa dirección IP. Si hay 20 CNAMEalias en el DNS entre el registro original y un registro Ao AAAA, el solucionador DNS los seguirá hasta que se obtenga una dirección IP.

TLS

Cuando el navegador realiza la TLS apretón de manos , es necesario verificar que el servidor se está comunicando con está autorizado para proporcionar un servicio web seguro en el FQDN solicitada: docs.tenantcompany.com.

Recuerde: al navegador no le importa docs.<tenant>.mycompany.com: el solucionador de DNS ha abstraído todo conocimiento de la indirección a través de un CNAMEregistro.

Nuestro método para autorizar al servidor a servir sesiones seguras docs.tenantcompany.comes mediante un certificado SSL firmado por una autoridad para la cual se ha establecido una confianza previa en el almacén de certificados raíz del navegador. Esta no es siempre la forma más fuerte de autenticación del servidor al cliente (muchos pueden salir mal en el modelo de CA centralizado), pero es lo mejor que tenemos en este momento.

Hay dos advertencias más aquí:

Intercambio de claves

Muchos proveedores de certificados SSL comerciales solo firmarán una única solicitud de firma, que efectivamente vincula el certificado comodín a una sola clave privada. La empresa inquilina puede sentirse incómoda al compartir esto fuera de su organización, ya que cualquier persona que posea la clave privada obviamente puede comprometer la comunicación con los otros sistemas seguros de la empresa inquilina.

Algunos proveedores firmarán múltiples solicitudes de firma de certificados bajo el mismo certificado, lo que permite instalar un solo certificado comodín en varios servidores y sistemas sin compartir la clave privada entre ellos.

Disfraces

Si la empresa inquilina le proporciona una copia de su certificado comodín (ya sea compartiendo la clave privada o firmando su propia CSR), puede hacerse <anydomain>.tenantcompany.compasar por una protección importante que garantiza la integridad de los servidores identificados en el tenantcompany.comespacio de nombres DNS. Esta podría ser una mala posición tanto para usted como para la empresa inquilina, desde una perspectiva legal / de responsabilidad.

Ossifrage Cósmico
fuente
Muchas gracias por la respuesta detallada. Es muy útil y me ayudó a considerar los aspectos éticos y legales de lo que intento hacer.
codematix