我有一个在Delphi XE2中开发的SOAP Web服务器,它公开了一些方法并使用了SSL。我也在Delphi XE2中构建了我的客户端,并使用THTTPRIO连接到webserver。我的问题与使用THTTPRIO的SSL证书有关。如果我打电话给我的网络服务,它可以在没有安装证书的情况下工作,但我认为它不应该。
第二种情况:我有一个自签名证书,我安装了它,在我打电话给我的网络服务后,它也有效。
当我检查我的事件:HTTPRIOAfterExecute和HTTPRIOBeforeExecute时,我将SoapRequest和SOAPResponse转换为来自TStream的字符串,似乎在两种情况下都没有加密。我还在另一个论坛上发现了同样的问题,但没有回复。
我搜索了有关使用Delphi的SOAP SSL客户端的信息,但无法找到任何新信息。你们中的任何人可以就这个问题给我一些建议吗?
答案 0 :(得分:1)
如果我打电话给我的网络服务,它可以在没有证书的情况下工作 安装,但我认为它不应该。
没有多少Web服务需要客户端证书(例如银行业务和其他高风险环境)。客户端更希望验证服务器身份,这是通过服务器证书完成的。
所以我想说这个Web服务确实以正常的预期方式工作。
HTTPRIOAfterExecute和HTTPRIOBeforeExecute,我转换了SoapRequest 和SOAPResponse到TStream的字符串,似乎不是 在两种情况下加密
这是正确的,消息有效负载将显示为未加密,因为SSL / TLS在传输层上执行加密。您的应用程序将看不到加密数据,这实际上使事情变得更容易。
您可以为消息有效负载添加加密,这里有通用库(但我没有使用加密HTTPRio的经验)。