改变罐子的到期时间

时间:2011-03-24 12:52:19

标签: keytool jarsigner

我需要更改由证书签署的jar的到期日期,比如说30天。因此我按顺序执行(我为第一个命令提供相关输入)。但是,尽管-validity选项被提供为30天,但jarsigner命令表明证书在6个月后到期(这是默认值)。我怎么能改变这个想法呢?以下是我使用的命令列表

keytool -genkey -keystore test -alias testAlias -validity 30 <br>
keytool -selfcert -alias testAlias -keystore test <br>
jarsigner -keystore "C:\test" "C:\some.jar" testAlias

1 个答案:

答案 0 :(得分:8)

您的密钥有效期为30天;您正在生成并使用该密钥签名的证书未被指定,因此默认为180天。 它是-validity命令中指定的-selfcert标志的值,在此处很重要。我刚试过这个:

cp myKeystore myKeystore-TEST
keytool -selfcert -validity 30 -alias myAlias -keystore myKeystore-TEST
jarsigner -keystore myKeystore-TEST myApplet.jar myAlias

当浏览器弹出对话框时,我可以验证过期日期是否列为今天+ 30天。 jarsigner -verbose -certs -verify myApplet.jar更详细,列出了证书和密钥的摘要:

sm       697 Thu Dec 01 04:02:34 EST 2011 applet/Main.class

  X.509, CN=Todd Kaufmann, OU=Unknown, O=..., L=Pittsburgh, ST=PA, C=US
  [certificate will expire on 12/31/11 12:48 PM]

  X.509, CN=Todd Kaufmann, OU=Unknown, O=..., L=Pittsburgh, ST=PA, C=US
  [certificate will expire on 1/23/12 4:08 AM]
...
s = signature was verified
m = entry is listed in manifest

12/31/11现在是我测试的30天,而另一个日期是我创建密钥库后的90天,我可以使用keytool -v -list -keystore myKeystore-TEST验证。 keytool的手册页说90天是密钥的默认值。