我正在尝试使用WebAS上的客户端证书设置SSL相互身份验证。使用我用JavaEE编写的SOAP Web服务。我正在尝试使用SOAP UI测试它 - 但是我在尝试查找SOAP UI是否发送所需的所有内容时遇到了困难,例如,在将我的PFX配置为项目设置中的密钥存储(包括私钥)之后在那里指定),我仍然在Charles Proxy中看到一个纯文本请求。我尝试过tcpmon但它没有产生任何更好的结果。
有什么办法可以验证请求是否在客户端正确发送?因为在服务器端我只看到“身份验证失败”。我在Oracle的文档中看到,有一个名为USER_CERT的头字段 - 但这是标准吗?在我的要求中,我没有看到它。我需要检查客户端是否正确,直到我可以进行一些试验&服务器端出错。
非常感谢!答案 0 :(得分:1)
您应该能够查看是否使用javax.net.debug
系统属性发送客户端证书,如"Debugging SSL/TLS Connections"中所述。
充其量,Fiddler本身可以发送其客户端证书,但这与将应用程序直接发送到服务器的情况完全不同。 Fiddler可能能够充分模仿这种行为,如果它也要求你的应用程序提供客户端证书(我不确定它是否可以这样做),但这实际上将独立于目标服务器看到的实际客户端证书(虽然你可能在实践中使用相同的东西)。
答案 1 :(得分:0)
显然我的SOAP UI由于某种原因无法发送客户端证书。所以我在SOAP UI和我的服务器之间设置了Fiddler。
Fiddler中弹出一条消息,表明服务器正在请求证书,当我将正确的证书放入指定的路径时,登录工作正常!
我已经阅读了大量的肥皂ui文档和讨论主题,不得不用另一个版本替换soap ui两次因为bug(4.5.0无法读取密钥库),4.5.1显示了一个类强制转换例外,我回到了4.0.1 - 只是让它在五分钟内与Fiddler合作:)