Validación del certificado Archivo de hosts DNS locales

0

Tengo una pregunta relacionada con un error de validación de certificado que estoy recibiendo. Estoy realizando una solicitud https de una máquina a otra (máquinas Windows). En la máquina de destino, he configurado un certificado ssl autofirmado para la aplicación web. En la máquina que está realizando la solicitud, instalé el certificado raíz (que se usó para firmar el autofirmado que instalé en la otra máquina) en el almacén de certificados raíz de confianza.

La aplicación de origen realiza la solicitud a esa aplicación web alojada en la máquina de destino, por nombre de dominio, pero su nombre de dominio no está registrado en un servidor DNS. Simplemente se configura localmente en el archivo hosts del sistema operativo. Básicamente es un dns local.

Pero cuando realizo la solicitud web, recibo errores de validación de certificados (no se pudo establecer la confianza de SSL). Si intento realizar la solicitud desde el navegador, aparece el mismo error. Pero si investigo el certificado y la cadena de certificados, puedo encontrar que todos los certificados están bien (tanto el certificado SSL utilizado como la cadena de certificados, la raíz). Pero sigo recibiendo el error de validación.

¿Podría ser la razón de esto el hecho de que esté usando un DNS local (a través de ese archivo de hosts locales)? Gracias.

    
pregunta danutz_plusplus 03.07.2015 - 11:29
fuente

1 respuesta

2

El proceso para establecer una cadena de confianza completa entre dos sistemas utilizando TLS es el siguiente:

1 / Crear u obtener el certificado raíz de CA X509. 2 / Obtener todas las autoridades intermedias de firma. 3 / genere un certificado X509 hoja y haga que lo firme la autoridad inmediatamente superior en la cadena de confianza (ya sea una CA intermedia o la CA raíz si está usando un modelo simple).

En el servidor:

  1. Instale la CA raíz en el almacén de certificados raíz de confianza (en Windows, se recomienda hacerlo para la cuenta de la computadora local a menos que sepa exactamente qué principal de seguridad utilizará la aplicación del servidor).

  2. Instale todos los certificados de CA intermedios en el almacén apropiado (tenga en cuenta que, dependiendo del software del servidor, es posible que necesite crear un archivo de certificado "encadenado" en lugar de contener todos los certificados relevantes de la cadena, así como la clave privada para la hoja) (en windows mismo comentario que para 1 /)

  3. Instale el certificado de la hoja en el almacén principal del usuario apropiado (en Windows, nuevamente, normalmente la tienda "personal" de la computadora local)

En el cliente:

  1. Instale la CA raíz en el almacén de certificados raíz de confianza.

Tenga en cuenta que todos los certificados deberán exhibir las propiedades apropiadas para que se consideren válidos. La parte difícil es que esto depende mucho de la aplicación, el uso del certificado y cómo se generó. Por lo general, para TLS, el certificado hoja debe tener un campo subject.CN o una entrada en SubjectAltName que coincida con el nombre DNS que está utilizando para intentar acceder a él (incluso si está usando un archivo HOST). El cliente también puede colocar un requisito adicional (por ejemplo, Chrome no aceptará el certificado con firmas SHA-1 si su validez se extiende más allá del 01/01/2017).

Todo esto es independiente en el proceso de resolución de nombres: no importa si el cliente obtiene la dirección IP del servidor a través de una consulta de resolución de DNS regular o de un archivo HOST.

    
respondido por el Stephane 03.07.2015 - 12:13
fuente

Lea otras preguntas en las etiquetas