Para TLS, ¿cómo ordenar a IIS 7 que incluya CA intermedias para que se incluyan en el marco de Solicitud de certificado?

2

Estoy observando un problema en el que el protocolo de enlace TLS está fallando entre un Cliente Java y un servicio web alojado en IIS 7. Al intentar interrumpir el intento, parece que el problema es la lista de autoridades confiables que se proporciona en el Marco de solicitud de certificado. no incluya la CA intermedia que firmó el certificado de cliente que se pretende utilizar. Al observar el RFC , se indica que el marco debe incluir

  

Una lista de los nombres distinguidos del certificado aceptable   autoridades. Estos nombres distinguidos pueden especificar un deseado   nombre distinguido para una CA raíz o para una CA subordinada; por lo tanto, este   El mensaje se puede utilizar tanto para describir raíces conocidas como para   espacio de autorización.

Para mí, esto significa que el intermedio debería haber sido incluido. ¿Hay algún ajuste oculto para obligar a la CA intermedia a ser incluida o soy incorrecta en mi interpretación de la especificación? Si soy incorrecto, no veo cómo podría identificarse el certificado de cliente adecuado.

Editar: Para dar un poco más de fondo. La cadena de confianza en cuestión proviene de Entrust y tiene tres niveles de profundidad, la CA, una CA intermedia y la hoja. En este caso, el servicio está protegido por un certificado de servidor firmado por el intermediario y el cliente está llamando utilizando un certificado de cliente firmado por el mismo intermediario.

    
pregunta Tedford 09.04.2013 - 21:57
fuente

2 respuestas

2

Es posible evitar la interpretación liberal de IIS de la especificación SSL / TLS exportando su certificado de cliente en formato PEM (base64 ASCII), agregando los certificados públicos para las entidades emisoras de certificados en la cadena de confianza y luego importando el certificado nuevamente en el almacén de claves bajo el mismo alias.

Para aclarar: no es suficiente tener todos los certificados de la cadena en el almacén de claves, tienen que importarse con el propio certificado del cliente como un paquete. Vea este hilo en StackOverflow para obtener detalles: por qué no ¿Java envía el certificado del cliente durante el protocolo de enlace SSL?

Acabo de usar este método para resolver este problema exacto con un cliente Java y un servidor IIS 7.5.

EDITAR:

Tenga en cuenta que después de importar el certificado en forma de paquete (con sus CA), no notará ninguna entrada nueva con keytool -list . Además, si vuelve a exportar el alias, solo obtendrá el certificado del cliente. La única diferencia que notará es un par adicional de KB en el archivo.

Utilice una herramienta como KeyStore Explorer para ver todos los certificados asociados con una entrada del almacén de claves. De hecho, KeyStore Explorer también le permite agregar certificados a la cadena de certificados en el almacén de claves para cualquier entrada, como alternativa a la ruta de exportación / edición / importación.

    
respondido por el Daniel Abson 26.03.2014 - 16:35
fuente
1

Este es un problema conocido en Windows si el certificado no se importa correctamente en IIS, lo más probable es que se realice a través de un script o la MMC de IIS. He experimentado el mismo problema con Firefox al no validar el certificado SSL de un servidor con esa configuración.

La solución para mí fue eliminar y reimportar los certificados desde la raíz hasta el servidor web, uno por uno, en la tienda de informática, no utilizando la herramienta IIS sino utilizando la herramienta CertMgr.

Para administrar los certificados directamente, puede hacerlo ingresando a MMC (solo escriba MMC desde el inicio - > ejecutar). Luego agregue el complemento Certificados para su máquina local. Eso le da más visibilidad en los certificados.

    
respondido por el random65537 09.04.2013 - 22:09
fuente

Lea otras preguntas en las etiquetas