¿Cómo elige el cliente el certificado correcto de su almacén de certificados?

5

Como puedo configurar mi servidor SQL y mi cliente para establecer una conexión SSL, He instalado el certificado en el servidor, así como en la máquina del cliente (tienda de Trusted Root Certification Authorities).

Si solo tengo un certificado en el servidor y el cliente, está funcionando bien.

Ahora mi pregunta.

Si tengo varios certificados en ambas máquinas, debo adjuntar el certificado al servidor SQL que deseo usar, pero no le digo a mi cliente qué certificado usar. Entonces, ¿cómo elige el cliente el certificado correcto de su almacén para el protocolo de enlace con SQL Server?

¿Recorre todos los certificados de su tienda y obtiene el que coincide con el certificado del servidor SQL?

¿Cómo identifica el cliente el certificado correcto (generalmente intercambia las claves públicas del certificado) de su tienda?

¿Hay alguna forma de configurar el cliente para que use el certificado XXXX para el certificado de SQL Server 1 y YYYY para el servidor de SQL 2?

    
pregunta Nihal Kumar 19.07.2016 - 04:21
fuente

1 respuesta

4

El servidor envía su certificado durante el protocolo de enlace TLS  y el cliente verifica su ruta de confianza.

En el primer paso, el cliente hace coincidir el campo del nombre común (CN) con el nombre de host del servidor (no compara los certificados).

Luego, el cliente verifica la ruta de confianza, es decir, si el certificado presentado por el servidor está firmado por una entidad cuyo certificado se encuentra en el almacén de certificados raíz de confianza (nuevamente: no coincide con el certificado directamente)

  • si usa un certificado autofirmado y lo agrega a la tienda, la verificación será exitosa cuando el certificado del servidor se encuentre en la misma tienda;
  • si utiliza una CA (autofirmada), la verificación es exitosa, cuando la firma del certificado de CA se encuentra en el almacén de confianza del cliente.
  

¿Recorre todos los certificados de su tienda y obtiene el que coincide con el certificado del servidor SQL?

Recuerde que el cliente no está intentando hacer coincidir los dos certificados (enviados por el servidor y almacenados en el cliente), sino verificar el certificado utilizado para firmar el certificado enviado.

En cuanto al proceso en sí, puede pensarlo de esta manera, pero si comprueba la ruta de confianza realizando un bucle a través de todas las entradas o utiliza un índice para acelerar el proceso, es un detalle de implementación que realmente no importa para el usuario.

  

¿Hay alguna forma de configurar el cliente para que use el certificado XXXX para el certificado de SQL Server 1 y YYYY para el servidor de SQL 2?

El cliente verificará la confianza del certificado enviado por el servidor durante la fase de negociación. Así que efectivamente serán diferentes para SQL Server 1 y SQL Server 2 y funcionará de la manera que describió sin ninguna configuración adicional.

Como una nota al margen, no debería administrar realmente agregando un certificado autofirmado para cada servidor por separado, sino que debe crear una CA y firmar certificados de uso de certificados. Luego, distribuye solo un certificado de CA a todos los clientes.

    
respondido por el techraf 19.07.2016 - 04:50
fuente

Lea otras preguntas en las etiquetas