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

标签 web-services delphi ssl soap

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

第二种情况:我有一个自签名证书,我安装了它,在我调用我的网络服务后它也可以工作。

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

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

最佳答案

If I call my webservice it works without having a certificate installed, but I think that it shouldn't.

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

所以我会说这个网络服务确实以正常的、预期的方式工作。


HTTPRIOAfterExecute and HTTPRIOBeforeExecute, I converted SoapRequest and SOAPResponse to string from TStream and seems that it isn't encrypted in both cases

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

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

关于web-services - 使用客户端证书的 THTTPRIO SSL 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863052/

相关文章:

java - 来自 Java Web 应用程序的 SharePoint Web 服务使用 CXF 和 Kerberos/NTLM 身份验证

web-services - 我在哪里/如何本地化Web服务中引发的异常?

delphi - 项目中的匿名方法泄漏内存

ssl - 将 "A"记录作为子域添加到 IP 会删除 HTTPS?

ssl - “The site uses SSL, but Google Chrome has detected insecure content on the page.”

web-services - 如何将 Web 服务与 SOAP 和 REST 相关联

java - Android Rest Web 服务调用,连接拒绝问题

c - Delphi/Pascal 字符串文字到 C/C++

德尔福。删除PageControl的TabSheet的边框

java - 什么是客户端 key 以及如何生成一个?