Foro sobre Java SE > ¿Nadie firma applets?
Yo llevo 2 semanas intentando firmar el mio con openssl y no hay manera, estoy en contacto con otras personas para ver si me pueden echar un cable.
Creo que debe existir una manera de firmar applets sin tener que recurrir a una AC.
Saludos, Rafa
Buenas,
Aunque se puede generar el certificado sin problemas con OpenSSL, para este caso resulta mucho más sencillo utilizando el almacén de claves mediante la herramienta keytool del JDK. Luego solo hay que aplicar el alias de certificado creado sobre el Applet utilizando la herramienta jarsigner.
Firmar el Applet es algo trivial y hay infinidad de tutoriales sobre como hacerlo (se necesitan 5 minutos y dos lineas en el intérprete de comandos). Un ejemplo de tutorial:
http://monillo007.blogspot.com/2009/03/como-y-por-que-firmar-los-applets-java.html
El problema, como bien comenta Toni, es que si no tienes una CA que certifique tu Applet, va a mostrar un mensaje muy feo en el navegador y probablemente nadie, salvo que te conozca, va a ejecutarlo. Aun con una CA se mostrará un mensaje que hay que aceptar, no hay forma de evitarlo.
El firmar el applet permite saltarse el sandbox de seguridad, para que desde el navegador se pueda acceder al sistema. Usar applet para esto es algo muy común y habitual y se puede hacer tambien con otras tecnologías como activex, silverlight, mozilla objects, etc. Sea cual sea la tecnología el navegador siempre va a avisar de que se intenta modificar el sistema.
Si el applet lo va a utilizar gente de nuestro entorno, que nos conoce y sabe lo que va a hacer el applet, basta con firmarlo y decirles que acepten los mensajes que aparezcan.
Si ese applet lo va a usar gente "externa", resulta efectivamente interesante contratar una CA para que lo reconozca y no tenga tanto rechazo. Es muy similar a lo que aplica con las conexiones SSL.
Yo el sitio propuesto (http://codesigning.ksoftware.net/) lo veo bien si se necesita una CA.
Un saludo
Efectivamente como dices se puede firmar con jarsigner creando previamente el certificado con keytool. Mi dilema es el siguiente, hasta cuando?
Según tengo entendido en próximas versiones de java si el certificado no esta firmado
por una CA este sera bloqueado. Es esto cierto o un bulo?
Buenas tardes:
A día de hoy ya no se puede ejecutar código autofirmado sin agregar la url a la lista de excepciones. Por lo menos esta es mi experiencia con uno que usaba, que por cierto lo he tenido que modificar cada dos por tres con las nuevas versiones de java, cada vez que lo dejaba de usar por unos meses, ya no funcionaba. Por tanto, he decidido dejar de usar java y que se lo coman con patatas. Hay alternativas mejores y que no te obligan a pagar a terceros (si es que son terceros).
Lo dicho, a mí ya no me tomarán más el pelo .
Un abrazo a todos: Luis.
Hola que tal a todos, seré breve, en base al tema sobre firmar applets no hay necesidad de hacerlo ya, aun con la nueva actualización del JDK (8u20) existe una forma de configurar Java para poder ejecutarlas sin necesidad de firmarlas...
Les comparto un tutorial donde explico como hacerlo, veanlo y si les gustó solo den clic en me gusta y suscribanse, comenten tambien...
http://www.youtube.com/watch?v=3gvxXuaWSWs
No es cierto.
Lo que aqui se plantea es que se pueda ejecutar el applet desde cualquier equipo remoto que acceda a la aplicacion.
En tu video lo que haces es desactivar en tu ordenador local el chequeo de seguridad agregando la url de tu applet a la lista de excepciones, tal y como ya decia @mermelado:
"A día de hoy ya no se puede ejecutar código autofirmado sin agregar la url a la lista de excepciones"
Hacer un applet para que funcione el local no tiene sentido. Para eso te haces directamente una aplicacion Swing.
Un saludo
Partiendo de la base de que el modelo de seguridad de los applets de Java está mal entendido por la propia Oracle y es bastante desastroso [1], casi todas las respuestas parecen obviar algo que a mí me parece fundamental. Si el applet requiere acceso a recursos del equipo local (o sea, salir del sandbox), es que permitir ejecutarlo supone un riesgo de seguridad y por eso es necesario que esté firmado por un certificado emitido por una autoridad certificadora. No es necesario porque el certificado de la autoridad sea más seguro técnicamente que uno autofirmado, sino porque para que dispongas del certificado has tenido que identificarte como persona o empresa, y si el applet firmado resulta ser un troyano, se te puede perseguir legalmente.
Si el applet sólo se va a ejecutar en una intranet empresarial, tiene sentido, quizá no autofirmarlo, pero sí generarlo con una CA interna que esté instalada mediante una distribución remota de software en todos los equipos de la empresa y, así, evitarse el coste de la licencia, pero un applet de acceso público con privilegios de acceso tiene que estar firmado, y es normal.
También hace falta añadir una firma digital con un certificado emitido por una autoridad certificadora reconocida, si no se quieren obtener mensajes de advertencia, a los controles ActiveX, a las hojas de cálculo Excel que contienen macros VBA, a los documentos PDF firmados, etc. Si conocéis una opción tecnológica que os permita ejecutar código empotrado en una web que accede a recursos locales del equipo sin pedir permiso al usuario, es que es una opción insegura.
mermelado, como parte de una de las últimas actualizaciones de Java se vació la lista de excepciones, y era algo documentado. Si te ha pasado más de una vez ya no sé el motivo.
UnoPorAhi, por curiosidad, ¿a qué te refieres con "mozilla objects"?
Buenas,
"UnoPorAhi, por curiosidad, ¿a qué te refieres con "mozilla objects"?"
Buenas pregunta. Escribi eso el 4 de enero y la verdad es que no tengo ni idea de que son. Yo creo que queria decir otra cosa y se me escapo lo de mozilla.
Un saludo
Parece increible que alguien hable de applets, pero a veces si quieres realizar una comunicación con un componente en cliente no te queda otra.
Ahora nos toca elegir si firmar o no nuestro applet, con una empresa certificadora, nada de self-signed que no vale para nada. O no?
No he visto casi nadie que los firme, a pesar que avise Java que quizás en las próximas versiones no funcione.
Si lo firmo, ¿cada vez que el cliente lo ejecute le va a salir dos prompts de aviso pidiendo autorización o hay alguna forma de que no le salgan?
¿Sabéis un sitio bueno, bonito y barato para firmarlo?
El más barato que he visto ha sido este.
http://codesigning.ksoftware.net/
Muchas gracias de antemano,