Java Web服务SSL(https)

Java Web服务SSL(https),java,web-services,ssl,https,soapui,Java,Web Services,Ssl,Https,Soapui,如果我有一个https()上的Web服务,这意味着我需要有一个证书才能连接到此Web服务,对吗 大概是这样的: 我不理解这一点,假设我的第一个问题是正确的,为什么我可以使用soapUI 3.5连接到Web服务(我没有配置“SSL设置”),但如果我使用Java(Axis 2 1.6.1)通信,我总是会出错(我已经尝试了基本身份验证,有很多变体,我的请求与SOAP请求非常相似)(在soapUI中) 如果我没有证书,为什么我会在SOAPUI日志中看到“INFO[HttpClientSupport$H

如果我有一个https()上的Web服务,这意味着我需要有一个证书才能连接到此Web服务,对吗

大概是这样的:

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

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

如果我在soapui中有关于“SSL信息”的请求信息,那是什么意思

我希望你能理解我的观点


非常感谢。

SSL有两种情况

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

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

除非您的web服务需要一个用于身份验证的证书,否则它很可能只是如上所述的单向证书,然后最好确定它是自签名证书还是证书链的末端

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


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

为什么需要使用客户端证书身份验证来访问web服务?此web服务是为其设置的,还是为其配置的一般问题?这是一个一般问题。我认为所有使用SSL的Web服务都需要证书,但我不确定。至少需要服务器证书,但不是所有都需要客户端证书。尝试将axis版本指向soapui上的模拟服务,看看它真正发送了什么