首页 > 解决方案 > 如何将客户端证书附加到 SOAP 请求?

问题描述

我在 IIS 中配置了一个 VB.NET 网站以使用客户端证书身份验证。

当用户打开网站 url 时,他会弹出一个选择证书的窗口。一旦用户在网页上有一个按钮,单击该按钮将向第 3 方发出 SOAP 请求。

目前我可以使用存储在服务器上的单个证书来发出 SOAP 请求(通过附加证书)。因此,无论哪个用户单击该按钮,都使用相同的证书。

如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?

标签: vb.netssliissoapx509

解决方案


如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?

简单地附加客户端的公共证书没有什么意义。如果您需要与客户端证书共同签署 SOAP 请求,那么您需要向客户端发送未签名的 SOAP 请求(例如,客户端从您的网站下载请求),对其进行签名,发送到服务器,允许服务器共同签署签署 SOAP 请求,然后将此 SOAP 请求提交给第 3 方。

您不能将客户端证书上传到服务器以便在服务器上进行 SOAP 签名。这是不受支持且易受攻击的方法。客户端证书的私钥(用于签署数据)绝不能离开客户端机器/设备。如果您需要使用客户端证书对任何内容进行签名,则必须仅在该客户端上执行签名操作。


推荐阅读