1

我需要将证书签名的 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
4

1 回答 1

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

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

于 2011-12-01T18:36:32.483 回答