使用Java2se html单元进行SSL客户端证书身份验证
我目前正在使用htmlunit模拟废弃需要安装ssl客户端证书(https连接)的网页。此证书已成功安装在我的windows操作系统中。通过web浏览器(chrome&IE)访问给定网页时,会发出提示,选择将使用的个人证书。我想访问windows证书存储区,最好是此个人证书,以进行身份验证并创建到我的htmlunit客户端的成功连接 我已经设法研究了SunMSCAPI和Windows MY,以阅读以下代码所示的应用商店使用Java2se html单元进行SSL客户端证书身份验证,java,ssl,ssl-certificate,htmlunit,unit-testing,Java,Ssl,Ssl Certificate,Htmlunit,Unit Testing,我目前正在使用htmlunit模拟废弃需要安装ssl客户端证书(https连接)的网页。此证书已成功安装在我的windows操作系统中。通过web浏览器(chrome&IE)访问给定网页时,会发出提示,选择将使用的个人证书。我想访问windows证书存储区,最好是此个人证书,以进行身份验证并创建到我的htmlunit客户端的成功连接 我已经设法研究了SunMSCAPI和Windows MY,以阅读以下代码所示的应用商店 Provider provider = Security.g
Provider provider = Security.getProvider("SunMSCAPI");
KeyStore store = KeyStore.getInstance("Windows-MY", provider);
store.load(null, null);
Enumeration<?> aliases = store.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement().toString();
if (alias.equals("mypersonalcert")) {
Certificate[] signerKey = (Certificate[]) store
.getCertificateChain(alias);
Object entry = store.getKey(alias, null);
System.out
.println("cert aquired! got it");
}
}
Provider-Provider=Security.getProvider(“sunmsapi”);
KeyStore store=KeyStore.getInstance(“Windows我的”,提供程序);
store.load(null,null);
枚举别名=store.alias();
while(别名.hasMoreElements()){
字符串别名=别名.nextElement().toString();
if(别名等于(“mypersonalcert”)){
证书[]签名密钥=(证书[])存储
.getCertificateChain(化名);
Object entry=store.getKey(别名,null);
系统输出
.println(“获得证书!明白了”);
}
}
如何成功地将其集成到我的htmlunit webconnection和web客户端实例以进行连接?提前谢谢。您可以使用
WebClientOptions.setSSLClientCertificate(URL certificateUrl、字符串certificatePassword、字符串certificateType)
将HTMLUnit指向您选择的客户端证书