我们必须使用 Java 中的 Apache CXF 创建一个 Web 服务客户端。问题是我似乎无法让 SSL 会话正确参与。要么完全失败,要么服务器无法在传输应用程序数据后破译发送给它的内容,或者我无法读取来自服务器的响应。
但是,当使用 .NET 中内置的简单肥皂测试客户端尝试相同的事务时,一切运行顺利。
服务器正在使用双重身份验证。
一切都是基于证书的 (x509) 存储在 windows 证书存储区(windows-MY 和 windows-ROOT)
编辑是的,双重身份验证确实是客户端和服务器身份验证。
到目前为止,使用 bountyCastle 提供程序而不是 SunMSCAPI 似乎更进一步,但仍然无法使客户端身份验证正常工作。
不幸的是,我只能收集客户端 CXF 2.2.9、Sun JDK 1.6_21 服务器 IIS 6 ASP.NET 的平台,我无法控制服务器,必须按原样使用它。
更新 我现在正在使用 JKS 密钥库,但仍然遇到问题。作为身份验证过程的一部分,客户端似乎没有将他的证书发送到服务器。结果,我从服务器收到 403.7 错误。
有趣的是,我收到此错误消息作为 HTML 页面,必须首先解密才能读取!