Don*_*ike 4 ssl certificate htmlunit
我在这个问题上通过网络搜索了几个小时,我找到的答案都没有真正适合我的问题,所以这就是我,在SOF中问我的第一个问题.
所以,我正在尝试使用htmlunit库从java程序打开Web浏览器.我需要连接的网站需要SSL连接,证书存储在USB密钥中.它的iKey2023产品.
系统曾经工作(我没有写),但USB密钥中的一个证书已过期,因此它自动转移到下一个(共有4个证书),它突然停止工作.
它给了我javax.net.ssl.SSLPeerUnverifiedException:peer not authenticated error.
我现在回到家了,我忘记了方法的确切名称,但我记得以下内容.
使用IE8创建浏览器实例
调用了browser.setWebConnection方法.根据API,此方法是内部API.
通过传递URL作为参数来建立与网站的连接
它在第3步抛出异常.
更多细节.小细节可能不正确,但我试图描述一幅大图.在步骤2,该方法将WebConnection对象作为参数,并且存在该接口的实现.在此实现中,使用sun.security.pkcs11.SunPKCS11(configFileInputStream)创建密钥库(我拼写正确吗?)
它是这样的.
Provider p = new sun.security.pkcs11.SunPKCS11(configFileInputStream); Security.addProvider(P);
并从此提供程序创建密钥库.
在WebConnection实现中使用此密钥库,它会创建一个SSLSocket.
因此,在证书切换到新证书后,它没有正确地获取证书.
这是我尝试过的.
我试图在htmlunit库中使用不同的方法,比如setSecurityProvider,我试图将Provider对象创建在上面的代码片段中.我得到了阶级演员异常.
我试图手动设置系统属性(trustStore,trustStorePassword,keyStore等).为了做到这一点,我想从USB密钥导出证书,但它不允许我从中导出私钥,所以我无法真正创建一个有效的PKCS12文件(openSSL想要私有)密钥文件和.pem文件进行转换,我没有那个密钥文件).
他们没有工作,我现在很困难.
我有一个类似的问题.在我的情况下,管理员更改了证书,我开始遇到相同的SSLPeerUnverifiedException.
我发现我可以将WebClient设置为使用insecureSSL(在调用getPage()之前),我将不再获得异常.
webClient.setUseInsecureSSL(true);
Run Code Online (Sandbox Code Playgroud)
但是,这并不能解决问题,因为服务器基本上不对客户端进行身份验证.
就好像WebClient存储的东西不能与新证书一起使用.
| 归档时间: |
|
| 查看次数: |
4325 次 |
| 最近记录: |