我需要更改由证书签署的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
答案 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天是密钥的默认值。