Java 当存在具有相同别名的证书时,从Windows MY获取证书

Java 当存在具有相同别名的证书时,从Windows MY获取证书,java,certificate,x509certificate,Java,Certificate,X509certificate,我正在尝试从windows MY检索所有证书,但其中一些证书具有相同的别名 因此,以下代码仅返回此别名的第一个实例: KeyStore keyStore = KeyStore.getInstance("Windows-MY", "SunMSCAPI"); Enumeration enumeration = keyStore.aliases(); while (enumeration.hasMoreElements()) { String alias = enumeration.nextEle

我正在尝试从windows MY检索所有证书,但其中一些证书具有相同的别名

因此,以下代码仅返回此别名的第一个实例:

KeyStore keyStore = KeyStore.getInstance("Windows-MY", "SunMSCAPI");
Enumeration enumeration = keyStore.aliases();
while (enumeration.hasMoreElements()) {
  String alias = enumeration.nextElement().toString();
  keyStore.getCertificateChain(alias);
  java.security.cert.Certificate[] chain = keyStore.getCertificateChain(alias);
  ...
}

是否有其他方法检索证书?

是否尝试了for循环

for (variable in object)
{
  code to be executed
}

我也有同样的问题。本Sun bug报告中提到的代码有效:


问题是我只知道如何从密钥库获取别名,而要获取证书,我必须使用这些别名。如果别名被多次使用,那么我只获得第一个具有此别名的证书。正如你所看到的,我已经在循环了。