Tengo dificultades para usar un certificado X.509 para realizar la autenticación del cliente desde Safari (9.0.1, como en OS X 10.10.5).
El síntoma es que voy a un https://...
sitio que verifica el certificado del cliente, pero parece que Safari simplemente se bloquea como si estuviera esperando una respuesta del servidor. En la consola de errores informa Failed to load resource: cancelled
(y en uno de los servidores con los que probé esto, sobre el cual tengo control, los registros relevantes informan que el navegador pareció cerrar abruptamente la conexión; no hay otra indicación allí de una falla de protocolo) .
El certificado es válido y tiene una buena firma de CA, según lo verificado por openssl
, y por el hecho de que funciona como se esperaba con Firefox, Chrome y curl
. Tenga en cuenta que Chrome y OS X curl
usan el llavero y Firefox no, por lo que no hay un factor común allí. Además, OS X curl
se basa en SecureTransport en lugar de OpenSSL, por lo que, creo, usa la misma biblioteca SSL que Safari (no sé sobre Chrome a este respecto).
Este no es un problema del lado del servidor, porque otros que usan la misma versión de Safari pueden acceder a la misma URL con certificados de la misma CA. Además, puedo conectarme directamente a ese sitio usando Chrome, que por supuesto también usa WebKit y que usa el mismo certificado, a través del llavero.
Lo más parecido a un diagnóstico que puedo encontrar es que aparece un mensaje en la Consola cada vez que hago esto, diciendo
2015-11-13 18:43:53.329 Keychain Access[1373]: SOSCCThisDeviceIsInCircle SOSCCThisDeviceIsInCircle!! 58
(el número final se incrementa cada vez).
No he podido encontrar nada en absoluto relacionado con esa cadena, aparte de pasar menciones en algunas publicaciones del foro claramente desconcertadas.
Intenté eliminar las preferencias de identidad de Acceso a llaveros sin éxito, intenté eliminar certificados similares (caducados) del llavero e intenté exportar, eliminar y volver a importar el certificado correspondiente; todo sin efecto.
¡Estoy perplejo! ¿Alguien tiene alguna sugerencia? Dado que esto parece ser un problema específico de Safari, estoy preguntando aquí antes de probar el SE de seguridad.
Me gusta usar la aplicación Acceso a llaveros para solucionar problemas de confianza criptográfica y también descubro que hacer una VM limpia de OS X o al menos una nueva cuenta de usuario ayuda a asegurarme de que estoy comenzando desde una cadena de confianza conocida.
A partir de ahí, puede usar la herramienta SSL para evaluar las cosas y comenzar a separar lo que está fallando o teniendo éxito. Por lo general, vale la pena alternar entre esa herramienta y Safari para clasificar los errores.
openssl
y de la inspección de que el certificado está bien. Sin embargo, intentaré usar el certificado de otro usuario y veré si algo falla.Adjunto una no respuesta:
Parece que este no es un problema general de certificado o confianza, sino un error relacionado con Safari que , a pesar de algunos esfuerzos, no he podido reducir más allá de eso (actualmente estoy usando Safari 9.1.2 en OS X 10.10 .5).
El certificado en cuestión no funciona con varios sitios (incluido el sitio web de su propio emisor), pero el mismo certificado funciona de manera consistente con esos sitios cuando se usa con Chrome (que también usa Acceso a Llaveros) o Firefox (que no lo hace).
Entonces, si está viendo esto porque tiene el mismo problema (y estoy agregando esta respuesta porque Stackexchange me acaba de decir, para mi sorpresa, que esta pregunta ya se ha visto más de 1000 veces), entonces mi consejo es:
bmike
samh
normando gris
normando gris
bmike