gpt4 book ai didi

Java 小程序无法访问 Firefox 证书存储

转载 作者:行者123 更新时间:2023-12-03 20:22:34 26 4
gpt4 key购买 nike

首先,我是 Java 的新手(而且在一般编程方面也不是很高级),所以如果我错过了一些明显的东西,我提前为浪费你的时间道歉。

我正在尝试创建一个可以访问 Firefox 证书库的小程序。搞砸的是,我发誓这段代码在我编写并首次测试时是有效的;然后我让 PC hibernate ,重新启动后它就再也不能工作了。

它总是在一开始就失败 - 在 KeyStore ks = KeyStore.getInstance("PKCS11");

java.security.KeyStoreException: PKCS11 not found
at java.security.KeyStore.getInstance(Unknown Source)

Caused by: java.security.NoSuchAlgorithmException: PKCS11 KeyStore not available
at sun.security.jca.GetInstance.getInstance(Unknown Source)

我认为代码中没有任何相关内容,但仍然是失败的函数:

/* Process PDF with Firefox */
private static byte[] processFirefox() throws GeneralSecurityException, IOException, DocumentException {
KeyStore ks = KeyStore.getInstance("PKCS11");
ks.load(null, "myPassword".toCharArray());
String alias = (String) ks.aliases().nextElement();
PrivateKey pk = (PrivateKey) ks.getKey(alias, null);
Certificate[] chain = ks.getCertificateChain(alias);
@SuppressWarnings("unused")
TSAClient tsaClient = null;
for (int i = 0; i < chain.length; i++) {
X509Certificate cert = (X509Certificate)chain[i];
String tsaUrl = CertificateUtil.getTSAURL(cert);
if (tsaUrl != null) {
tsaClient = new TSAClientBouncyCastle(tsaUrl);
break;
}
}
List<CrlClient> crlList = new ArrayList<CrlClient>();
crlList.add(new CrlClientOnline(chain));
return SignPDF.sign(chain, pk, DigestAlgorithms.SHA256, "PKCS11", CryptoStandard.CMS, "A Reason", "A Location", null, null, null, 0);
}

起初我以为是因为我没有指定提供商。然后我做了,没有任何改变。“有趣”的是,我还尝试在 Chrome 中运行相同的小程序,它给了我完全相同的错误。所以我猜测要么是小程序无法访问/读取 Firefox 的证书存储区,要么是其他原因正在发生。如果我将 PKCS11 替换为 "Windows-MY", "SunMSCAPI" 并将密码条目替换为 null,则相同的代码可以完美运行,所以我认为这是 PKCS11/Firefox 特有的问题。

那么,我真的需要一些帮助来解决这个问题。我确实阅读了搜索结果前几页上的所有 Google 搜索结果,但要么我太新手无法提供帮助,要么他们真的没有提供足够的帮助。

如果我忘记添加任何有助于您帮助我的重要信息,请告诉我。

谢谢!本

最佳答案

也许您的安全设置已更改?

查看这些链接:

您可以使用简单的 FileReader 访问商店位置吗?

关于Java 小程序无法访问 Firefox 证书存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066191/

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