El servidor no solicita el certificado en el protocolo SSL

1

Tengo un servicio de Windows y un servicio web que intenta realizar una llamada de servicio web a través de TLS. He configurado los certificados en MMC y puedo conectarme correctamente usando el servicio web. Sin embargo, cuando intento realizar la misma llamada utilizando el mismo certificado del Servicio de Windows, no puedo establecer la conexión. Tanto el servicio web como el servicio de Windows se ejecutan bajo la cuenta del sistema local. Intenté usar el Monitor de red de Microsoft y descubrí que al usar el Servicio de Windows, el servidor no proporciona el certificado durante el protocolo de enlace SSL. ¿Cuál podría ser la razón para esto? A continuación se muestran capturas de pantalla del monitor de red.

    
pregunta Naveen 16.01.2014 - 06:13
fuente

1 respuesta

3

En su segunda captura de pantalla, verá que el servidor envía su ServerHello y no hay un subsiguiente Certificate Request ... pero tampoco un Certificate . El servidor procede inmediatamente con un ChangeCipherSpec , como si ya se hubiera hecho todo el cifrado asimétrico; y ese es exactamente el caso. Este es un saludo abreviado en el que tanto el cliente como el servidor recuerdan los secretos de la sesión de una conexión anterior, y aceptan usarlos nuevamente. Cuando una sesión se reanuda , no hay certificado, ni del cliente, ni del servidor. El cliente envía a ClientHello una copia del ID de sesión de la sesión anterior, y el servidor elige reanudar esa sesión.

Idealmente, esto está bien; Si la sesión anterior usó una autenticación con la que el servidor se siente cómodo (por ejemplo, se mostró un certificado de cliente), entonces reutilizar la sesión implica reutilizar ese estado de autenticación. Si el servidor no se siente cómodo con él, puede rechazar el intento de reanudación (es decir, ignorar el ID de sesión como lo envió el cliente, y proceder con un saludo completo normal) o imponer un nuevo intercambio dentro de el primero. En un mundo práctico y realista, las cosas no siempre son ideales, por lo que el código del servidor puede aceptar reutilizar la sesión, luego decide que no debería haberlo hecho y oculta su vergüenza al cerrar bruscamente la conexión.

Los parámetros de la sesión SSL se almacenan en la memoria RAM, por lo que reiniciar el cliente y / o el proceso del servidor debe vaciar dichos cachés y al menos permitirle obtener una imagen más clara de lo que sucede. También podría solucionar el problema por completo (esa es la versión ligera de "try a reboot", una solución conocida para muchas dolencias relacionadas con Windows).

    
respondido por el Tom Leek 16.01.2014 - 16:13
fuente

Lea otras preguntas en las etiquetas