Java keytool显示的日期是什么时候?

时间:2018-01-16 21:23:38

标签: java certificate keystore keytool

昨天,我使用keytool列出我们的密钥库,如下所示:

keytool -list -keystore src/keystore.p12 
Enter keystore password:  
Keystore type: JKS
Keystore provider: SUN

Your keystore contains 5 entries

octopus, Jan 15, 2018, PrivateKeyEntry, 
Certificate fingerprint (SHA1): FE:B2:B7:C0:A7:CF:...

由于存在问题,我得出结论,第一张证书刚刚过期。今天我来了

octopus, Jan 16, 2018, PrivateKeyEntry, 
Certificate fingerprint (SHA1): FE:B2:B7:C0:A7:CF:...

keytool真的意味着显示当前日期还是仅仅是在开玩笑?

我虽然,日期是“未完成”日期,因为它是有道理的。它不能是条目添加或最近修改的日期。我可能做错了,但是

  • 我确定日期已经改变,正如我在昨天发送的电子邮件中看到的那样
  • 我确信密钥库没有改变,因为它被git跟踪。我甚至删除了它并再次检查出来,没有改变
  • 我确信密钥库自六个月前没有改变(并且git同意)
  • 其他条目显示不同的日期

keytool不提供版本信息。

java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

1 个答案:

答案 0 :(得分:4)

对于JKS,它是创建或修改密钥库条目的日期,但PKCS12不存储该信息,因此keytool(实际上是JCE IINM)只使用“now”。

注意java 8 KeyStore.getInstance("JKS")的最新更新实际上读取了JKS和PKCS12;见https://stackoverflow.com/a/47640052/2868801。在java 9中,PKCS12成为默认值。

要查看证书中的有效期(notBefore和notAfter),以及您可能不需要的许多其他信息,请使用-v