2010-01-04 19 views
7

Me preguntaba si alguno de ustedes sabe si es posible en javascript o php probar si un cliente tiene un certificado de cliente específico instalado en el navegador.Comprobando si un cliente está instalado en el navegador del cliente

Lo que pasa es que tenemos un certificado de servidor instalado pero para ser reconocido por los clientes, necesitan 2 certificados de cliente que les permitan reconocer la autoridad del emisor de nuestro certificado de servidor. Nos gustaría probar el navegador para estos 2 certificados, si no los hay, queremos proponer al cliente que los descargue antes para ingresar en el modo https ...

¿Alguien puede ayudar? Por favor, detalla tu respuesta si sabes una.

+1

Solo debe comprobar si hay un certificado en el lado del cliente, el certificado raíz. –

+0

sí, la cuestión es que nuestro nuevo certificado de servidor depende de una autoridad que es nueva y desconocida para todos los navegadores. Necesitamos un navegador como Firefox para descargar la nueva CA raíz para que puedan reconocer nuestro certificado de servidor. Pero no sé cómo probar si un navegador ya tiene la CA raíz o si necesita descargarla. Tan pronto como se conecta en https a nuestro servidor, obtiene que nuestro certificado de servidor no es confiable porque no se conoce la autoridad. A menos que instale el certificado de cliente para la CA raíz. – Fabien

+0

Eso no es lo que significa 'certificado de cliente'. Desea saber si el cliente confía en un certificado raíz particular. Eso es diferente. –

Respuesta

-1

Obligar a sus usuarios a descargar e instalar un certificado de CA de cosecha propia es feo y odioso. En su lugar, muéstreles el amor y pague los $ 30 dólares estadounidenses para obtener un certificado SSL firmado por una CA de confianza y de confianza.

+0

Bueno ... Estamos usando un certificado de confianza, pero la compañía recientemente cambió su CA y ya les hemos pagado por este certificado de servidor por lo que nos gustaría usarlo. Al igual que tienen un nuevo certificado de autoridad ROOT CA, los navegadores no están actualizados, no los conocen. Todos sabemos que la gente no actualiza su navegador a menudo ... y Safari, Firefox no funciona a través de la actualización de Windows ... Así que estamos tratando de encontrar una solución. Pero seguro, no estamos contentos con este cambio y, por lo tanto, con nuestro proveedor de certificados SSL. Lástima, fue el precio correcto y reconocido por todos los navegadores al principio ... – Fabien

+0

Nuestro certificado de servidor es un certificado wildcart y es mucho más que 30 $ :) – Fabien

+0

Todavía estoy de acuerdo con usted, este es un procedimiento de mierda para hacer que las personas Descargue e instale el certificado de autoridad de la CA ROOT ... Esto no debería suceder. No tenemos suerte – Fabien

0

qué tal un mensaje de advertencia que estará oculto por un javascript que se cargará desde su sitio https.

en el mensaje de advertencia puede vincular el sitio de actualización de Windows o dondequiera que se puedan descargar los certificados raíz actualizados en su navegador.

0

PHP es un lenguaje del lado del servidor. Si realmente quieres probar esto, entonces debes hacerlo con JavaScript y luego enviar una solicitud AJAX a PHP.

Pero creo que hay otra solución a su problema. Normalmente, cuando una CA cambia su nombre, etc. generalmente tienen nuevos "Certificados Intermedios" que puede usar. (Si tiene un servidor httpd de apache, puede buscar también "paquete ca" en su sitio web). Con este paquete, puede enviar el nuevo certificado de CA junto con su certificado.

3

Puede hacerlo desde el lado del cliente utilizando javascript para solicitar un archivo conocido de una fuente segura (https). si la solicitud falla, significa que el cliente se negó a aceptar su certificado (u otro error de red) en este punto, puede hacer que aparezca un mensaje para pedirle al usuario que instale el certificado raíz con un enlace al certificado raíz.

Esto debe hacerse desde una página no segura. de lo contrario, el usuario puede rechazar su certificado y nunca cargar la página para comenzar y por lo tanto su javascript nunca se ejecuta

No se puede hacer en PHP porque php (que es del lado del servidor) no puede determinar si el navegador del cliente tiene un particular root ca instalado

Sin embargo, no haría esto. obtener un certificado apropiado en su lugar.

Parece que no tiene una comprensión suficiente de cómo funciona SSL en general. Sugiero pasar algún tiempo entendiendo cómo funciona SSL y cómo se usan los certificados.

DC

para aprender sobre el envío y la recepción de las respuestas HTTP con javascript leer esta página ..

http://www.w3schools.com/XML/xml_http.asp

Se puede utilizar para enviar y recibir datos de texto, no sólo XML. Es realmente fácil de implementar, pero debe conocer los problemas de la versión del navegador.

DC

+0

Confirmo que tengo un mal conocimiento en SSL. Hay tantas tecnologías en Internet que no puede conocer y estar especializado en todo lo que hace que le pida ayuda. Desde entonces, hemos decidido como solución, poner una página que no sea https en nuestro sitio web, explicando que es necesario instalar nuevos certificados antes de pasar a la siguiente página segura. No es muy agradable, pero es lo único que encontramos para resolver nuestro problema ... Acerca de su solución, me pregunto cómo solicita un archivo a través de JavaScript ... ¿hay alguna función de descarga? usas document.location? La pregunta es solo para un propósito informal. – Fabien

+0

He actualizado mi respuesta para incluir un enlace al uso de javascript para cargar un archivo desde el servidor. esta es la base para la mayoría de la funcionalidad de Ajax – DeveloperChris

Cuestiones relacionadas