Java o mi firma electrónica no funciona

Cualquiera que trabaje con firma electrónica para presentar documentos mediante la administración electrónica (hacienda, seguridad social…) se ha visto en un momento u otro con problemas a la hora de usar su firma electrónica y sin saber muy bien que hacer, incluso el fallo se produce antes de llegar al punto de firmar y enviar el documento, y ya casi cualquier soporte informático lo primero que dice es  ¿tiene usted java actualizado?

¿Qué es Java?

Java como tal y para los usuarios es un programa que permite la ejecución de ciertos programas de internet, hasta aqui empezamos mal, ya que ¿para que quiero yo un programa que ejecute otros programas? ¿no sería mejor ejecutar esos programas directamente? bueno, el caso es que la principal ventaja de java es justo esa, que ejecuta programas, pero estos progamas no tienen que ser específicos para Windows, iOs o incluso Linux, es decir cuando la seguridad social hace un programa de java, este funcionará, en teoría, en cualquier ordenador y sistema operativo, no teniendo que hacer una versión para cada tipo de sistema (menos costoso que hacer uno para cada sistema), entonces el usuario tendrá que ejecutar el programa con su consola de java (que es la aplicación que normalmente da problemas).

En resumen, los programas de java  se ejecuta en nuestro ordenador usando la consola de java que tengamos instalada, y esta consola es la que a veces falla.

¿Por qué no funciona hoy si ayer pude usarlo?

bueno el caso es que java se actualiza con mucha frecuencia (varias veces al año en el mejor de los casos) y cada vez que sale  una actualización muchos de los navegadores modernos reconocen que hay una versión más nueva de java y no permiten el uso de las versiones antiguas, esto  obliga a los usuarios a actualizar su versión de java, y con ello queda expuesto a las necesidades y nuevas funcionalidades que traiga esta versión frente a la anterior.

Otro motivo principal y derivado de los programas que exigen firma electrónica es que requieren mucha seguridad, es decir, garantizar que el usuario es quien dice ser (mediante firma electrónica claro) y a su vez garantizar que la información transmitida llega de forma segura al destinatario (la administración normalmente) sin que pueda ser leida por nadie más, y por supuesto tener un acuse de recibo que garantiza al usuario que su documento se ha recibido. Todo esto queda expuesto según se encuentran fallos en Java, que requien de una actualización para evitar que alguien pueda presentar documentos, o leer los ya presentados sin ser quien realmente dice ser.

¿Cómo lo puedo solucionar?

Bueno, no en todos los casos se puede aplicar las mismas soluciones y cada administración tiene sus particularidades (navegadores admitidos, sistemas operativos, etc…) pero en líneas generales, siguiendo estos pasos se pueden solucionar los problemas:

  • Actualiza java a la última versión disponible, en la web de java está siempre disponible de forma gratuita.
  • Si utilizas Internet Explorer añade todas las páginas que vayas a usar con java y certificados a la lista de sitios de «Vista con compatibilidad» dependiendo de tu versión estará en un sitio u otro y ten al menos la versión 8.0.
  • Agrega las páginas como sitios de confianza del navegador, en windows, se encuentra en el panel de control, Opciones de internet, pestaña de Seguridad
  • Agrega las páginas a la lista de Excepciones de sitios de seguiridad en Java, en windows se encuentra en el panel de control, Java, pestaña de Seguridad
  • En ese mismo panel, pulsa la opción Restaurar Peticiones de Datos de Seguridad, esto volverá a preguntarte cuando una página web pida ejecutar un programa Java, y claro tendremos que decir que si.
  • Borra los archivos temporales de internet, en el navegador (varía según cada versión) como en Java.

Si tras esto no funciona, intenta desinstalar java y volver a instalarlo, otra opción es probar con una versión más antigua de java como Java 7 update 75 o en caso extremo Java 6 (requerirá crear una cuenta en Oracle para obtener Java).