首页 > 解决方案 > Java 无法读取从 Windows CA 存储中导出的证书

问题描述

我正在使用与此处的答案几乎相同的方法从 Windows CA 证书存储导出证书: 使用 PowerShell 获取文件的证书链?在这里自动将 x509 证书与链从 Server 2008 R2 导出到 p7b 文件而不使用外部工具?除了我是从 CA 系统商店获得的。

这行得通,openssl 和 certutil 之类的东西可以读取我的证书。但是,我需要 Java 来读取我的证书,并且 Java 8 密钥库类和 keytool 命令行工具 ( keytool -list -v -keystore v.p12 -storetype pkcs12 -storepass pass) 都说我的证书有 0 个条目,而 openssl 和 certutil 显示有条目。

如何以 Java 可读格式导出我的证书,或轻松将其转换为 Java 可读格式,同时将其保存在 pkcs12 中?我实际要导出的机器没有openssl,所以请记住这一点。示例文件(密码为“pass”)在这里:https ://mega.nz/#!Cj5GGIBR!O5shbaPuHNKEJhRrivR0TY3hRd3ZRYQzvRQFJa_ri3s

标签: javapowershellcertificatekeytoolpkcs#12

解决方案


将 PKCS12 数据导入 JKS 密钥库:

keytool -importkeystore -srckeystore v.p12 -srcstoretype PKCS12 -destkeystore v.jks

推荐阅读