-tsa or-tsacert timestamp for applet jar self-signed


Cuando estaba tratando de auto-firmar en el frasco como abajo.

jarsigner -keystore my keystore myjar.jar myalias

Da una advertencia como:

No-tsa o-tsacert se proporciona y este jar no tiene marca de tiempo. Sin una marca de tiempo, es posible que los usuarios no puedan validar este jar después de la fecha de vencimiento del certificado del firmante (2014-05-08) o después de cualquier fecha de revocación futura.

Por favor, ayude a resolver el problema.

Author: Benoit Duffez, 2014-02-11

4 answers

El reciente Java 7 proporciona una (cortesía?) advirtiendo sobre algo que ha estado en su lugar durante una década...

Trusted Timestamping fue introducido en Java 5 (2004). La motivación era que los desarrolladores no se vieran obligados a "volver a firmar los archivos JAR implementados anualmente" cuando los certificados expiraran.

http://docs.oracle.com/javase/1.5.0/docs/guide/security/time-of-signing.html

Una Autoridad de Sello de Tiempo basada en URL (TSA) generalmente es proporcionada por el emisor Autoridad de certificación (CA) para trabajar con los mismos certificados que la CA emitió. Por ejemplo, la url de digicert tsa se puede acceder de la siguiente manera:

jarsigner -tsa http://timestamp.digicert.com [.. other options]

http://www.digicert.com/code-signing/java-code-signing-guide.htm

El sellado de tiempo con certificado autofirmado puede ser un objetivo difícil de alcanzar, ya que (1) una marca de tiempo de TSA debe ser una transacción de confianza (lo que descarta el "sellado de tiempo automático"), y (2) las URL típicas de TSA están configuradas para trabajar con los certificados proporcionados por la misma organización de CA (es decir, la URL de TSA no procesa un certificado autofirmado)

Actualización:

URL para intentar marcar el tiempo certificados autofirmados:

  • Symantec: -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp (por comentario de brad-turek)

Para una red privada, uno podría considerar una Autoridad de marca de tiempo interna como Thales (nCipher) Time Stamp Server (o históricamente OpenTSA)

 57
Author: l --marc l,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-17 20:42:49

Esta advertencia le indica que el certificado de su jar expirará en mayo. Por lo tanto, los usuarios no podrán ejecutar su programa después de esta fecha.

Para mejorar la situación, se agregó la característica de marca de tiempo. De esta manera, se puede decir a los usuarios: "He utilizado el certificado en este punto del tiempo (que es proporcionado y verificado por la agencia de sello de tiempo - tsa), cuando todavía era válido!"Mientras no cambie y renuncie a su jar, seguirá funcionando, incluso después de que caduque el certificado, porque los usuarios ven que en el momento de la creación el certificado era válido.

Para referencia: http://docs.oracle.com/javase/7/docs/technotes/guides/security/time-of-signing.html

Tl;dr: si ignoras la advertencia, tu jar no funcionará después del 14-05-08. Agrega una marca de tiempo, y seguirá funcionando siempre y cuando no modifiques nada.

Saludos

 21
Author: Malte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-25 13:48:54

Me enfrentaba al mismo problema. Sin la marca de tiempo el frasco no se firmaría.

Cuando se agrega -tsa http://timestamp.digicert.com, no daría ninguna advertencia o error, pero aún así el frasco no estaría firmado.

Pero luego agregué la siguiente parte y funcionó para mí.

-tsacert alias

Así que, básicamente mi orden final fue

jarsigner -verbose -tsa http://timestamp.digicert.com -tsacert alias  -sigalg SHA256withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk alias_name

Recuerde que el alias_name en el comando y el de keystore debe ser el mismo.

 0
Author: vedant shirke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-17 19:15:22

Este error se produce si se realizaron actualizaciones con JDK Java/Oracle 1.7 u51. Este JDK NO es idéntico al anterior.

Puede instalar una versión anterior del JDK ANTES de u51 (por ejemplo 1.7u45), o instalar JDK 6.

Entonces, cuando vuelva a compilar, no verá el error.

 -16
Author: Timmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-19 21:44:48