【发布时间】:2021-09-03 08:58:44
【问题描述】:
我在 IIS 中配置了一个 VB.NET 网站以使用客户端证书身份验证。
当用户打开网站 url 时,他会弹出一个选择证书的窗口。一旦用户在网页上有一个按钮,点击它就会向第三方发出一个 SOAP 请求。
目前我可以使用存储在服务器上的单个证书来发出 SOAP 请求(通过附加证书)。因此,无论哪个用户点击按钮,都会使用相同的证书。
如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?
【问题讨论】:
我在 IIS 中配置了一个 VB.NET 网站以使用客户端证书身份验证。
当用户打开网站 url 时,他会弹出一个选择证书的窗口。一旦用户在网页上有一个按钮,点击它就会向第三方发出一个 SOAP 请求。
目前我可以使用存储在服务器上的单个证书来发出 SOAP 请求(通过附加证书)。因此,无论哪个用户点击按钮,都会使用相同的证书。
如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?
【问题讨论】:
如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?
简单地附加客户端的公共证书是没有意义的。如果您需要与客户端证书共同签署 SOAP 请求,那么您需要向客户端发送未签名的 SOAP 请求(例如,客户端从您的网站下载请求),对其进行签名,发送到服务器,允许服务器共同签署签署 SOAP 请求,然后将此 SOAP 请求提交给第 3 方。
您不能将客户端证书上传到服务器以便在服务器上进行 SOAP 签名。这是不受支持且易受攻击的方法。客户端证书的私钥(用于签署数据)绝不能离开客户端机器/设备。如果您需要使用客户端证书对任何内容进行签名,则必须仅在该客户端上执行签名操作。
【讨论】: