gpt4 book ai didi

java - 使用 PKCS#12 证书对 Java 某些数据进行签名时出错

转载 作者:行者123 更新时间:2023-12-02 04:44:35 26 4
gpt4 key购买 nike

我正在尝试使用 PKCS#12 证书来签署一些数据。我在开发计算机中成功签署了数据,但是在将应用程序部署到生产计算机中后,我遇到了一些问题。

在开发计算机中,我有 Oracle jdk 1.6.0 和 centos 6.2,在生产计算机中,有 IBM jdk 1.6.0 和 IBM AIX。

问题是我无法从加载了认证文件的 KeyStore 实例中获取带有别名的私钥,似乎 keystore 中没有条目,而我已使用 printetd 打印了认证文件中存在的条目keytool命令(所以文件没有问题),这段代码在开发机上运行也没有任何问题。

感谢任何帮助

这是代码:

KeyStore ks = KeyStore.getInstance("PKCS12");
String certFileAbsPath = this.getClass().getClassLoader().getResource("").getPath() + File.separator + "file.p12";
File file = new File(certFileAbsPath);
FileInputStream fis = new FileInputStream(file);
ks.load(fis, null);
Enumeration aliasEnum = ks.aliases();
String aliasName = null;
while(aliasEnum.hasMoreElements()){
aliasName = (String)aliasEnum.nextElement();
logger.debug("alias: " + aliasName);//nothing is logged!
}

最佳答案

根据我的经验,Java 不喜欢没有密码的 PKCS#12 keystore 。为您的 PKCS#12 文件设置一个密码(密码不必太强,“密码”即可)并将其作为 ks.load 的第二个参数提供。

关于java - 使用 PKCS#12 证书对 Java 某些数据进行签名时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com