¿Cómo puedo solucionar el problema "No se han encontrado certificados: la aplicación Chrome ha solicitado un certificado" Edición de Android / Google Chrome
La cuestión
Algunos de los usuarios de nuestro sitio web están encontrando un problema al acceder a áreas seguras de nuestro sitio web, en dispositivos Android, en Google Chrome.
Se parece a esto;
- ¿Cómo obtener InputStream de un https, Push Servlet fragmentado?
- cómo resolver el error jsoup: no se puede encontrar una ruta de certificación válida a la dirección solicitada
- SSLSocketFactory establecimiento de tiempo de espera y propiedades de socket
- ¿Cómo puedo establecer SignalR en Android Studio para ignorar los problemas de SSL para el desarrollo
- Variedad de errores HTTPs al comunicarse con el servidor desde la aplicación Android
He podido replicar el problema en los dispositivos siguientes usando la prueba física del dispositivo de Browserstack;
- Samsung Galaxy S6, Samsung Galaxy S5, Samsung Galaxy S4 (Android v5 y v4.4)
- Nexus 6 (Android v6, v5 y v4.4)
- Moto X 2ª generación (Android v6 y v5)
Mi investigación
Todos los artículos, foros y preguntas que he leído en línea (y no hay muchos, a menos que esté buscando lo incorrecto) apuntan a la configuración y configuración del servidor y / o certificado SSL, y que el problema que se está experimentando es por diseño.
Sugerencia de la corrección 1
El artículo más útil que he encontrado hasta ahora es el número 268055 "No se encontraron certificados" en el rastreador de problemas de cromo.
El comentario 18 sugiere cambiar la configuración de SSL en IIS;
Puedo solucionar el problema si tiene acceso a IIS. Básicamente, debe ir a Configuración SSL y asegurarse de que la opción Requerir SSL esté desactivada y de que "Ignorar" esté seleccionado para Certificados de cliente .
El comentario 28 lo respalda;
Para el caso no Googler, este mensaje de error sólo se produce cuando se encuentra con un sitio que solicita un certificado de cliente. No hay nada que Chrome pueda hacer aquí: el sitio ha solicitado un certificado de cliente, e incluso saber si un certificado de cliente es válido, Chrome para Android tiene que preguntar al sistema operativo. Ese es el mensaje que está viendo: está controlado por Android y todas las aplicaciones (Google o de otro tipo) están obligadas a pasar por ese flujo.
Esto ocurrirá con cualquier sitio configurado para solicitar certificados de cliente, por lo que para resolver esto, no solicite certificados de cliente o configure sus dispositivos Android para que tengan certificados de cliente (por ejemplo, a través de una aplicación de administración de dispositivos o mediante la instalación de un archivo PKCS # 12) .
Kamakshi: Todo esto es un comportamiento "By Design", pero requiere que los operadores del servidor cambien, así que no estoy seguro de qué hacer con este error.
Al igual que el comentario 43 ;
No creo que la gente en este error sabría mucho sobre la configuración de IIS. Usted querría hablar con Microsoft sobre eso. De buscar alrededor, "Ignore Client Certificate" parece ser la opción que desea .
Hemos hecho eso pero no parece haber hecho la diferencia.
Sugerencia de la corrección 2
Otra pregunta aquí en Stack (" certificado confiable en pc, pero no en android ") sugiere que podría faltar un certificado intermedio;
Puede que le falte un certificado intermedio en su archivo cert . Si ya ha visitado otro sitio web que tiene el mismo vendedor de certificados, el certificado intermedio se recuerda en su navegador. Esto no podría – o incluso mejor – no será el caso con cada visitante a su sitio web. Para resolver un certificado intermedio que falta en la conexión SSL, deberá agregar el certificado intermedio a su propio archivo de certificado .
He comprobado y tenemos un certificado de dominio (que no es un certificado comodín), un certificado intermedio y un certificado raíz, así que no creo que sea el problema tampoco. También he ejecutado una prueba de comprobación de sitio en el sitio web de Networking4all y una prueba de SSL en el sitio web de Qualys SSL y ambas rutas sin errores ni advertencias.
Mi pregunta
¿Alguien más ha encontrado este problema? ¿Hay alguna otra solución que podamos tratar de solucionar? Estoy fuera de ideas en este momento por lo que cualquier consejo sería muy apreciado.
Algunos detalles adicionales por si acaso
El servidor en el que se encuentra el sitio web ejecuta Windows Server 2008 R2 e IIS 7.5 y nuestro proveedor de certificados SSL es Thawte.
¡Gracias por adelantado!
- Cómo importar certificado SSL autofirmado a Volley en Android 4.1+
- ¿Cómo hacer un HTTPS POST de Android?
- Android java.security.cert.CertPathValidatorException: Ancla de confianza para la ruta de certificación no encontrada
- Uso de certificados de cliente / servidor para la autenticación de dos vías socket SSL en Android
- Conexión de socket SSL
- TLS con extensión de indicación de nombre de servidor (RFC 3546) en Android
- ¿Cómo usar el SSL auto-firmado en la biblioteca de red de Android (ION)?
- Certificado ssl de android
Habiendo resuelto exactamente este mismo problema, he aquí lo que encontré …
Especificaciones del servidor (esencialmente igual que OP)
- Windows Server 2008 r2
- IIS 7.5
- Proveedor de SSL: GeoTrust RapidSSL
Primera edición: Políticas criptográficas anticuadas
Varios artículos señalan que el servidor puede tener políticas criptográficas anticuadas. Un poco de investigación reveló que todo se debe configurar usando la configuración del registro. Consulte el artículo Support de MS Cómo restringir el uso de ciertos algoritmos y protocolos criptográficos en Schannel.dll para obtener información detallada.
¿No está seguro de si su servidor está actualizado? La prueba de servidor de SSL Labs es una gran herramienta para validar las políticas criptográficas de su sitio.
¿Editar manualmente el registro?
Los detalles del artículo de soporte técnico de Microsoft modifican las claves del registro. ¡Aack! Un poco más de investigación y encontré una gran utilidad llamada IIS Crypto por Nartac Software que actualizará todas las claves del Registro en un solo clic. FYI: un reinicio es necesario también.
Desde el sitio de Nartac Software:
IIS Crypto es una herramienta gratuita que permite a los administradores habilitar o deshabilitar protocolos, cifras, hashes y algoritmos de intercambio de claves en Windows Server 2008, 2012 y 2016. También le permite reordenar los conjuntos de cifrado SSL / TLS ofrecidos por IIS, implementar las mejores prácticas Con un solo clic, crear plantillas personalizadas y probar su sitio web.
Segundo problema: configuración de sitio SSL de IIS incorrecta
La raíz de este problema debido a la configuración predeterminada de IIS de configuración de SSL para "Aceptar" certificados de cliente. No hay necesidad de aceptar certificados de cliente, así que simplemente establezca el ajuste como "Ignorar" (de la imagen sugerida por el OP # 1).
Nota: La imagen muestra "Requerir SSL" está desmarcada; Para esta discusión, si está marcada no es relevante. Todo lo que importa es que el sitio puede conectarse mediante https.
Envolver
Una vez que el servidor tiene las directivas criptográficas reconfiguradas y los ajustes de SSL de IIS se han configurado para ignorar certificados de cliente, se solucionará el error " Sin certificados encontrados ".
- Android SyncAdapter Inicializar automáticamente la sincronización
- Equivalente a la vista "Problemas" de Eclipse en Android Studio