Java keytool 显示什么日期?

What date does the Java keytool show?

昨天,我使用 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是真的用来显示当前日期还是只是在开玩笑???

不过,日期是 "Not After" 日期,因为它是有道理的。它不能是条目添加或最近修改的日期。我可能做错了什么,但是


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)

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

请注意 java 8 最近的更新 KeyStore.getInstance("JKS") 实际上同时读取 JKS 和 PKCS12;见 。在 java 9 中,PKCS12 成为默认值。

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