Foros del Web » Programando para Internet » Javascript »

Seleccionar certificado del navegador en un formulario.

Estas en el tema de Seleccionar certificado del navegador en un formulario. en el foro de Javascript en Foros del Web. Hola a todos. No se si estoy en el foro adecuado para hacer esto, pero preguntaré por si no estuviera equivocado. Tengo un formulario en ...
  #1 (permalink)  
Antiguo 12/01/2010, 06:29
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 2
Seleccionar certificado del navegador en un formulario.

Hola a todos.

No se si estoy en el foro adecuado para hacer esto, pero preguntaré por si no estuviera equivocado.

Tengo un formulario en el que necesito que el usuario pueda seleccionar uno de los certificados que tiene instalados en el navegador y recoger los datos de este antes de realizar el submit.

Me estoy refiriendo a los certificados que emite (por ejemplo) FNMT, tanto personales como para empresas.

Como esto se debe realizar en la parte del cliente, he supuesto que se haría con javascript.

Espero haberme explicado bien.

Si alguien ha hecho esto alguna vez, o tiene experiencia con esto, le agradecería su ayuda, pues estoy atascado con este tema.

Muchas gracias y saludos a todos.
__________________
------
Saludos.
  #2 (permalink)  
Antiguo 12/01/2010, 08:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 14 años, 6 meses
Puntos: 1532
Respuesta: Seleccionar certificado del navegador en un formulario.

si es que funcional tal cual como los de SSL, eso no lo puedes "tocar" con JS, de eso de encarga el shell del navegador
  #3 (permalink)  
Antiguo 12/01/2010, 08:27
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Seleccionar certificado del navegador en un formulario.

Cita:
Iniciado por maycolalvarez Ver Mensaje
si es que funcional tal cual como los de SSL, eso no lo puedes "tocar" con JS, de eso de encarga el shell del navegador
No estoy seguro de lo que estás diciendo, o tal vez debe haber algún modo de llamar a "el shell del navegador". En tal caso, ¿como?.

Lo que pretendía decir es como hacer que se muestre la ventana (o la shell del navegador, si a eso te refieres), para que el usuario pueda seleccionar uno de los certificados instalados en el navegador.

Gracias por tu contestación.
__________________
------
Saludos.
  #4 (permalink)  
Antiguo 12/01/2010, 09:07
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 14 años, 6 meses
Puntos: 1532
Respuesta: Seleccionar certificado del navegador en un formulario.

eso con JS no se puede, ya que JS no tiene acceso al IO y mucho menos a la shell del navegador, con firefox (entre otros) existe una pequeña pero reducida api que le permite cierto acceso desde javacript, pero solo desde archivos locales o si se instala el script como "complemento".
  #5 (permalink)  
Antiguo 12/01/2010, 09:11
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Seleccionar certificado del navegador en un formulario.

¿Y como lo realizan en la Agencia tributaria?, entre otros sitios.

¿Con java tal vez?.
__________________
------
Saludos.
  #6 (permalink)  
Antiguo 12/01/2010, 09:23
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 13 años
Puntos: 45
Respuesta: Seleccionar certificado del navegador en un formulario.

Buenas,

Para poder firmar el contenido de un formulario existe el método cryptoSignText() al que se le puede pasar como parámetro el valor "ask" para que muestre un cuadro de diálogo desde el que el usuario pueda elegir el certificado con el que lo quiere firmar. El valor devuelto por este método se añade al formulario en un campo oculto antes de enviarlo. Por supuesto no funciona en IE.
  #7 (permalink)  
Antiguo 12/01/2010, 09:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 14 años, 6 meses
Puntos: 1532
Respuesta: Seleccionar certificado del navegador en un formulario.

el de Tecna me parece muy bueno, no lo conocía, pero no funciona en IE, en cuanto a java es posible, no se si el nivel de abstracción de un applet le permita tener ese acceso
  #8 (permalink)  
Antiguo 12/01/2010, 10:34
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Seleccionar certificado del navegador en un formulario.

Joer si es complicado el tema.

Lo que me dices ya lo había probado, pero con muy poco éxito.

Por lo visto voy a tener que investigar con java.

Gracias por los comentarios.
__________________
------
Saludos.
  #9 (permalink)  
Antiguo 12/01/2010, 11:06
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 13 años
Puntos: 45
Respuesta: Seleccionar certificado del navegador en un formulario.

Buenas,

la parte con javascript es muy sencilla, lo dificil está en la parte del servidor. seria algo así:

Código Javascript:
Ver original
  1. var form = document.formulario;
  2. var datos = form.datos.value;
  3.  
  4. firma.value = crypto.signText(datos, 'ask');
  5.  
  6. //Para iE hay una solución que sería:
  7.  
  8. var datosE = datos.getBytes("UnicodeLittleUnmarked");
  #10 (permalink)  
Antiguo 12/01/2010, 11:21
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Seleccionar certificado del navegador en un formulario.

Hola.

¿Pero eso sería para firmar o cifrar un texto con el certificado?.

Yo no necesito cifrar o firmar nada. Se trata de recoger los datos del certificado (que el usuario selecciona) para pasarlo al procesar el formulario.

Los datos recogidos del formulario forman un xml y se envía a un web service que tiene que autenticar quien hace la petición mediante los datos del certificado. Es por eso mi empeño en esto.

Graicas.
__________________
------
Saludos.
  #11 (permalink)  
Antiguo 12/01/2010, 11:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 14 años, 6 meses
Puntos: 1532
Respuesta: Seleccionar certificado del navegador en un formulario.

creo que eso que mencionas lo hace el navegador, con SSL sólo necesito configurarlo en el servidor, el navegador reconoce automáticamente el certificado y cifra automáticamente la comunicación, a php me llegan los datos como cualquier post, ya que apache y su modulo ssl_module se encargan de todo
  #12 (permalink)  
Antiguo 12/01/2010, 11:54
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Seleccionar certificado del navegador en un formulario.

Cita:
Iniciado por maycolalvarez Ver Mensaje
creo que eso que mencionas lo hace el navegador, con SSL sólo necesito configurarlo en el servidor, el navegador reconoce automáticamente el certificado y cifra automáticamente la comunicación, a php me llegan los datos como cualquier post, ya que apache y su modulo ssl_module se encargan de todo
Eso que tu dices NO tiene nada que ver con lo que yo pretendo. Eso es un certificado en el servidor que cifra la comunicación entre el cliente y el servidor. Lo que yo digo es otra cosa totalmente distinta.
__________________
------
Saludos.
  #13 (permalink)  
Antiguo 12/01/2010, 13:04
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 13 años
Puntos: 45
Respuesta: Seleccionar certificado del navegador en un formulario.

Buenas,

¿y como quieres que sepan que eres tu si no lo firmas? y además de saber que eres tu, tendrán que saber que efectivamente son los datos que tu enviaste y no han sido alterados. En el mensaje de arriba ya te he dicho como abrir un cuadro de diálogo para poder elegir entre varios certificados. Una vez que has elegido te muestra el contenido exacto de lo que se va a enviar en otro cuadro de diálogo con dos botones, uno para firmar y enviar y otro para cancelar.

Y qué quieres decir con:
<cita>
"Se trata de recoger los datos del certificado (que el usuario selecciona) para pasarlo al procesar el formulario."
</cita>

no creo que quieras enviar el certificado en si junto con el formulario, porque entonces de qué serviria? esa parte debe estar a buen recaudo y la parte pública, es pública asi que aunque la enviaras no probaria que eres tu. Mira lo que te dije arriba en el otro mensaje.

Etiquetas: seleccionar, navegadores, formulario, certificados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:47.