lou*_*her 20 java ssl certificate keystore
我的java应用程序使用密钥库文件,其中我有一个证书,用于与活动目录服务器的ssl连接.我要做的是检查其到期日期并提示用户是否即将到期.我的申请开始时我必须这样做.我的想法是使用外部程序:keytool在密钥库中显示有关某些证书的信息,然后对keytool输出的字符串进行一些解析操作以查找此验证日期.
这是特定keytool命令的输出:
Owner:
Issuer: CN=CPD Root CA, DC=cpd, DC=local<br>
Serial number: 39e8d1610002000000cb
<br>Valid from: Wed Feb 22 21:36:31 CET 2012 until: Thu Feb 21 21:36:31 CET 2013
Certificate fingerprints: <br>
MD5: 82:46:8B:DB:BC:5C:64:21:84:BB:68:E3:4B:D4:35:70<br>
SHA1: 35:52:CA:F2:11:66:1E:50:63:BC:53:A5:50:C1:F0:1E:62:81:BC:3F<br>
Signature algorithm name: SHA1withRSA
Run Code Online (Sandbox Code Playgroud)
问题在于解析日期,因为我无法确定它的显示格式.
有没有更简单的方法来检查java密钥库文件中包含的证书的到期日期?
Wil*_*ieT 22
感谢EJP的指导,这里是我提出的一个方块.
try {
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(new FileInputStream("keystoreLocation"), "keystorePassword".toCharArray());
Enumeration<String> 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28321 次 |
| 最近记录: |