Me he encontrado con una situación muy extraña.
Estoy desarrollando una aplicación web que requiere autenticación con certificado de cliente.
Cada vez que implemento la aplicación en el puerto HTTPS 443 predeterminado, el navegador no me solicita un certificado de cliente, la aplicación web no ve ningún certificado y, por lo tanto, marca la solicitud como no autorizada.
Verificado para que funcione como se espera
En las siguientes situaciones, el navegador solicita que se adjunte un certificado de cliente y la autenticación funciona como se espera.
- Implementado en enlace
- Equipo local con un certificado SSL autofirmado que se ha confiado manualmente.
- Implementado en enlace
- Instancia remota con certificado SSL válido provisto desde Vamos a cifrar .
También se ha verificado que el escenario anterior funciona como se esperaba si ejecuto la aplicación web con el comando sudo para superar que causa el problema en el escenario siguiente.
Situaciones en las que no funciona
Verificó lo siguiente
- Todo está 100% intacto en términos de configuración, el único cambio que aplico es cambiar el número de puerto de 8443 a 443.
- Verificado en múltiples navegadores, Chrome, Firefox y Safari. El comportamiento es consistente para todos los navegadores y en todos los escenarios.
- Se borraron todos los cachés, cookies, variables de sesión y también se inspeccionó que no se envió ningún encabezado de autorización HTTP en la solicitud.
- Verificó que la aplicación web carga exactamente el mismo almacén de confianza en todos los escenarios.
- Se intentó eliminar el archivo ~ / Library / Cookies / HSTS.plist
- Intenté ejecutar la aplicación web en el puerto 8443 y en el frente de HTTPS 443 con nginx, exactamente el mismo comportamiento.
¿Qué podría estar provocando este comportamiento y qué otras herramientas / depuración puedo usar para entender mejor qué está pasando?