-->

在Windows-MY某些证书私钥未检出(Some certificates private key

2019-08-03 09:23发布

使用Windows 7,JDK 6(7)。

我试图获取存储在Windows MSCAPI密钥存储个人证书,它的基本属性(以用于签名的私钥)。 然而,一些别名标识没有私有密钥(isKeyEntry ==假),虽然它acctually有一个。

任何建议如何处理这个“功能”?

与证书(已撤销)私钥有这种怪异的“财产”的P12文件可以从下载http://download.upce.cz/terena-public.pfx 。 密码是“密码”。

KeyStore ks = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
ks.load(null, null);
Enumeration<String> aliases = ks.aliases();
while (aliases.hasMoreElements()) {
    String alias = (String) aliases.nextElement();
    X509CertImpl certificate = (X509CertImpl)ks.getCertificate(alias);
    System.out.println("Alias: " + alias);
    System.out.println("  Subject: " + certificate.getSubjectDN());
    System.out.println("  Issued By: " + certificate.getIssuerDN());
    if (ks.isKeyEntry(alias)) {
        System.out.println("  Has private key");
    }
}

Answer 1:

我进口的PFX文件到Mozilla Thunderbird中,并出口其作为P12文件。 现在,我可以看到它通过MSCAPI。 一定有什么东西阻止MSCAPI看到私钥原证书中。

我比较了文件,我注意到,在原始文件的密钥用法部分使用。

原PFX:

Bag Attributes
   localKeyID: 01 00 00 00
   friendlyName: le-b6311e84-87e7-4e02-9cf6-4012518e0541
   Microsoft CSP Name: Microsoft Software Key Storage Provider
Key Attributes
   X509v3 Key Usage: 90

转换P12:

Bag Attributes
   friendlyName: le-b6311e84-87e7-4e02-9cf6-4012518e0541
   localKeyID: 47 E4 D3 F0 75 48 9D 77 07 E9 51 A4 F1 B6 DF E9 40 80 26 7A
Key Attributes: <No Attributes>

有两个文件的详细区别,但我不知道哪一个会导致不受欢迎的行为。



文章来源: Some certificates private keys in Windows-MY not detected
标签: java windows pki