检查java密钥库中的证书过期日期

我的java应用程序使用密钥库文件,其中我有一个证书,用于与活动目录服务器的ssl连接。 我要做的是检查其到期日期并提示用户是否即将到期。 我的申请开始时我必须这样做。 我的想法是使用外部程序:keytool在密钥库中显示有关某些证书的信息,然后对keytool输出的字符串进行一些解析操作以查找此validation日期。

这是特定keytool命令的输出:

Owner: Issuer: CN=CPD Root CA, DC=cpd, DC=local
Serial number: 39e8d1610002000000cb
Valid from: Wed Feb 22 21:36:31 CET 2012 until: Thu Feb 21 21:36:31 CET 2013 Certificate fingerprints:
MD5: 82:46:8B:DB:BC:5C:64:21:84:BB:68:E3:4B:D4:35:70
SHA1: 35:52:CA:F2:11:66:1E:50:63:BC:53:A5:50:C1:F0:1E:62:81:BC:3F
Signature algorithm name: SHA1withRSA

问题在于解析日期,因为我无法确定它的显示格式。

有没有更简单的方法来检查java密钥库文件中包含的证书的到期日期?

感谢EJP的指导,这里是我提出的一个方块。

  try { KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); keystore.load(new FileInputStream("keystoreLocation"), "keystorePassword".toCharArray()); Enumeration aliases = keystore.aliases(); while(aliases.hasMoreElements()){ String alias = aliases.nextElement(); if(keystore.getCertificate(alias).getType().equals("X.509")){ System.out.println(alias + " expires " + ((X509Certificate) keystore.getCertificate(alias)).getNotAfter()); } } } catch (Exception e) { e.printStackTrace(); } 

使用java.security.Keystore类加载密钥库并枚举其内容,并检查每个证书是否到期。