webservices SSL(https)

问题描述:

如果我有一个通过https(https://mywebservice/myservice)的web服务,这意味着我需要一个证书来连接到这个web服务,对吧?webservices SSL(https)

事情是这样的:

Java HTTPS client certificate authentication

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

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

如果我在我的SOAP UI请求信息“SSL信息”中有什么意思?

我希望你能理解我的观点。

非常感谢。

+0

为什么您需要* a使用客户端证书身份验证来访问Web服务?这个Web服务是为它设置的,还是一个普遍的问题? – Bruno 2012-01-16 23:15:32

+0

这是一个普遍的问题。我认为所有使用SSL的Web服务都需要证书,但我不确定。 – user1152812 2012-01-17 00:22:59

+0

至少服务器证书,但并非全部都需要客户端证书。 – Bruno 2012-01-17 01:11:02

SSL有两种情况。

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

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

除非您的web服务期望证书进行身份验证,否则很可能它仅仅是上述单向证书的情况,然后最好确定它是否是自签名的证书或证书链的结尾。

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

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