webservices SSL(https)

时间:2012-01-16 22:53:40

标签: java web-services ssl https soapui

如果我有通过https(https://mywebservice/myservice)的网络服务,这意味着我需要有证书才能连接到这个网络服务,对吗?

这样的事情:

Java HTTPS client certificate authentication

我不明白这一点,假设我的第一个问题是正确的,为什么我可以使用soapUI 3.5连接到web服务(我没有配置“SSL设置”)但我总是有一个错误,如果我使用Java进行通信(Axis 2 1.6.1)(我已经尝试了基本的auth,有很多变种,我的请求与SOAP请求非常相似(在soapUI中)。)

为什么我在SOAPUI日志中看到“INFO [HttpClientSupport $ Helper]正在更新keyStore ..”如果我没有证书?

如果我在SOAP UI中有关于“SSL Info”的请求信息,那意味着什么呢?

我希望你理解我的观点。

非常感谢。

1 个答案:

答案 0 :(得分:2)

SSL有两种情况。

一个是单向证书,在这种情况下,您通过https连接到服务器,服务器向客户端提供其证书的公共版本(在本例中为soapui)。为此,SoapUI需要知道根证书(如果它位于证书链的末尾)或实际证书(如果它是自签名证书)。

在极少数使用双向证书的情况下,单向仍然与上面相同,但在另一个方向上,客户端提供证书来验证自身。在这种情况下,服务器必须知道证书才能批准它。

除非您的网络服务期望用于身份验证的证书,否则很可能只是如上所述的单向证书的情况,然后最好确定它是否是自签名证书或证书链的末尾。

在unix / linux系统上使用openssl,或在连接到webservice后在任何系统上打开浏览器中的证书,以获取有关所收到证书结构的更多详细信息。

取决于您使用的客户端将取决于您如何纠正这种情况,但是对于soapui,例如,您可以将根证书添加到用于调用soapui的java版本的cacerts文件中。