首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用Java解析由PKCS12生成的WS2016 :失败的PKCS12完整性检查

尝试使用Java解析由PKCS12生成的WS2016 :失败的PKCS12完整性检查
EN

Stack Overflow用户
提问于 2018-04-20 20:13:04
回答 1查看 2.2K关注 0票数 3

我试图使用Java将PKCS12证书解析为一个x509和一个私钥:

代码语言:javascript
复制
final KeyStore keystore = KeyStore.getInstance("PKCS12", "SunJSSE");
keystore.load(pkcs12Certificate, password.toCharArray());
final Enumeration<String> aliases = keystore.aliases();
final String alias = aliases.nextElement();
final PrivateKey key = (PrivateKey) keystore.getKey(alias,
            password.toCharArray());
final X509Certificate publicCertificate = (X509Certificate) keystore
            .getCertificate(alias);
return create(clientId, key, publicCertificate);`

这对于由windows-server-2012构建的证书工作得很好。我们已经将VM更新为windows-server-2016,这导致以下错误破坏了此代码:

代码语言:javascript
复制
Exception in thread "main" java.io.IOException: Integrity check failed: 
java.security.UnrecoverableKeyException: Failed PKCS12 integrity checking
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2146)
at java.base/java.security.KeyStore.load(KeyStore.java:1479)
at com.company.AsymmetricKeyCredential.create(AsymmetricKeyCredential.java:164)
at com.company.Main.main(Main.java:29)
Caused by: java.security.UnrecoverableKeyException: Failed PKCS12 integrity checking
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2142)
... 3 more`

经过一番探索,2016年windows似乎已经改变了它们格式化PKCS12和PFX证书的方式。具体地说:

前RS1,PKCS7 EncryptedData用于CertBag;在RS1中,则切换到PKCS7数据。AUthSafe内容在CertBag中有多个选项:

代码语言:javascript
复制
      AuthenticatedSafe ::= SEQUENCE OF ContentInfo
   -- Data if unencrypted
   -- EncryptedData if password-encrypted
   -- EnvelopedData if public key-encrypted

看起来这个开关可能会导致失败,但我不知道如何修复它。我可以用打开的ssl解析证书,所以我知道证书本身没有问题。我们必须支持来自WS2016的证书,所以这里的任何洞察力都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-11 18:48:08

这是JDK 8中的一个bug,它已经解决了。https://bugs.openjdk.java.net/browse/JDK-8202299

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49949084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档