【发布时间】:2014-04-15 06:31:57
【问题描述】:
我的代码如下:
public static void main(String[] args) throws IOException, GeneralSecurityException, DocumentException {
String path = "<pfx file>";
char[] pass = "<password>".toCharArray();
BouncyCastleProvider provider = new BouncyCastleProvider();
Security.addProvider(provider);
KeyStore ks = KeyStore.getInstance("pkcs12", provider.getName());
ks.load(new FileInputStream(path), pass);
String alias = (String) ks.aliases().nextElement(); /* alias='CCA India 2011\u0000'*/
PrivateKey pk = (PrivateKey) ks.getKey(alias, pass);/* returns null */
Certificate[] chain = ks.getCertificateChain(alias);/* returns null */
X509Certificate last = (X509Certificate) chain[chain.length - 1];
System.out.println(last.getNotBefore());
System.out.println(last.getNotAfter());
}
返回的别名末尾有一个 \u0000。我不知道该怎么做。这就是 pk 和 chain 为空的原因吗?我试图修剪别名无济于事。
我可以将此证书导入微软密钥库。这意味着我可以在 Internet Explorer .. 证书中看到它。我可以用它在 Adobe Reader 上签署文件。所以pfx文件没有问题。只是无法在 java 中使用它。
我也安装了 JCE。
【问题讨论】:
标签: java bouncycastle pfx