使用客户端证书的THTTPRIO SSL无法正常工作

时间:2014-11-11 10:48:24

标签: web-services delphi ssl soap

我有一个在Delphi XE2中开发的SOAP Web服务器,它公开了一些方法并使用了SSL。我也在Delphi XE2中构建了我的客户端,并使用THTTPRIO连接到webserver。我的问题与使用THTTPRIO的SSL证书有关。如果我打电话给我的网络服务,它可以在没有安装证书的情况下工作,但我认为它不应该。

第二种情况:我有一个自签名证书,我安装了它,在我打电话给我的网络服务后,它也有效。

当我检查我的事件:HTTPRIOAfterExecute和HTTPRIOBeforeExecute时,我将SoapRequest和SOAPResponse转换为来自TStream的字符串,似乎在两种情况下都没有加密。我还在另一个论坛上发现了同样的问题,但没有回复。

我搜索了有关使用Delphi的SOAP SSL客户端的信息,但无法找到任何新信息。你们中的任何人可以就这个问题给我一些建议吗?

1 个答案:

答案 0 :(得分:1)

  

如果我打电话给我的网络服务,它可以在没有证书的情况下工作   安装,但我认为它不应该。

没有多少Web服务需要客户端证书(例如银行业务和其他高风险环境)。客户端更希望验证服务器身份,这是通过服务器证书完成的。

所以我想说这个Web服务确实以正常的预期方式工作。


  

HTTPRIOAfterExecute和HTTPRIOBeforeExecute,我转换了SoapRequest   和SOAPResponse到TStream的字符串,似乎不是   在两种情况下加密

这是正确的,消息有效负载将显示为未加密,因为SSL / TLS在传输层上执行加密。您的应用程序将看不到加密数据,这实际上使事情变得更容易。

您可以为消息有效负载添加加密,这里有通用库(但我没有使用加密HTTPRio的经验)。