Tengo dificultades para utilizar un certificado X.509 para hacer 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://...
que hace la comprobación del certificado del cliente, pero Safari parece simplemente colgarse 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 he probado esto, sobre el que tengo control, los registros pertinentes informan de que el navegador parecía cerrar abruptamente la conexión - no hay ningún otro indicio allí de una chapuza de protocolo).
El certificado es válido y tiene una buena firma de la CA, como se verifica en openssl
y por el hecho de que funciona como se espera con Firefox, Chrome y curl
. Tenga en cuenta que Chrome y OS X curl
sí usan el Llavero, y Firefox no, así que no hay un factor común ahí. Además, OS X curl
está construido con SecureTransport en lugar de OpenSSL, por lo que creo que utiliza la misma biblioteca SSL que Safari (no sé sobre Chrome en este sentido).
Esto no es un problema del lado del servidor, porque otras personas que utilizan la misma versión de Safari pueden llegar 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 encuentro es que siempre que hago esto aparece un mensaje en la Consola que dice
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 las menciones de pasada en algunos mensajes del foro claramente desconcertados.
He probado a borrar las preferencias de identidad del acceso al llavero sin éxito, he probado a borrar certificados similares (caducados) del llavero, y he probado a exportar borrar y volver a importar el certificado correspondiente; todo ello sin efecto.
Estoy perplejo. ¿Alguien tiene alguna sugerencia? Dado que parece ser un problema específico de Safari, estoy preguntando aquí antes de probar en el SE de seguridad.
2 votos
SOSCCThisDeviceIsInCircle es un mensaje de diagnóstico para manejar el cambio de versión y la detección de fusión en los archivos sincronizados con iCloud. Puede ignorarlos o hacer un nuevo usuario de prueba para estar seguro de que está comprobando el llavero del sistema y la seguridad del sistema y no se trata de problemas de corrupción o confianza a nivel de usuario.
1 votos
Sólo un detalle: Chrome no utiliza WebKit, sino Blink (que es una bifurcación del mismo).
0 votos
@bmike Gracias - eso tiene sentido. Es extraño que parezca ocurrir en correlación con los accesos a un sitio no relacionado, pero... Eso probablemente puede ser descartado como significativo. Ah, bueno.
0 votos
@samh Lo había olvidado - gracias. Y veo que Blink parece no incluir la capa SSL de la transacción: estas se implementan en Chrome, no en Blink (si estoy leyendo la visión general correctamente). Eso significa que "funciona en Chrome" es probablemente no significativo después de todo. Cada vez parece más un problema específico de Safari.
0 votos
También, qué URL está fallando - podría ser baja seguridad en la configuración del servidor o un escenario de tipo MITM...