有谁知道java怎么实现弹出浏览器中的证书选择框吗

发布网友 发布时间:2022-04-21 05:46

我来回答

1个回答

热心网友 时间:2022-06-18 07:36

浏览器是按根据 subject 来查找证书的,你也这样就好了。


比如对于一个网站来说,就是找证书中对应到这个网站的条目,每个证书里面有一个 subject, CN 条目,按照 CN 对比就能找到证书。而用 Java 读取 IE 浏览器的证书存储则是  API 的事情,不是我们自己读取的,JDK 6 开始自带了这个 IE 的 KeyStore 读取方法。比如下面这个代码,我的电脑上的 Windows 证书存储中一共有3个 Alipay 支付宝数字证书,它们的客户号都是我的支付宝,我们可以读取所有的条目比较它的 CN 后都列出来放在 Combox 下拉框中,让用户选择,不过似乎 Java 不能在通信过程中停下来让我们选择一个证书啊?你的问题是指不知道如何让程序自动匹配其中一个证书?


// 这个方法读取Windows 操作系统的证书存储中"根证书列表“,
// 似乎”个人“证书是 "Windows-My",还有其它的我不知道,你可以猜测嘛。
KeyStore ks = KeyStore.getInstance("Windows-ROOT", "SunMSCAPI");
ks.load(null, null);

for (Enumeration iter = ks.aliases(); iter.hasMoreElements();) {
String alias = (String) iter.nextElement();
Certificate cert = ks.getCertificate(alias);

System.out.println("Cert :" + cert.getType() + " / " + cert.getPublicKey());
}


声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com