vb.net - 如何将客户端证书附加到 SOAP 请求?
问题描述
我在 IIS 中配置了一个 VB.NET 网站以使用客户端证书身份验证。
当用户打开网站 url 时,他会弹出一个选择证书的窗口。一旦用户在网页上有一个按钮,单击该按钮将向第 3 方发出 SOAP 请求。
目前我可以使用存储在服务器上的单个证书来发出 SOAP 请求(通过附加证书)。因此,无论哪个用户单击该按钮,都使用相同的证书。
如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?
解决方案
如何将相应用户的客户端证书附加到 SOAP 请求?这可能吗?
简单地附加客户端的公共证书没有什么意义。如果您需要与客户端证书共同签署 SOAP 请求,那么您需要向客户端发送未签名的 SOAP 请求(例如,客户端从您的网站下载请求),对其进行签名,发送到服务器,允许服务器共同签署签署 SOAP 请求,然后将此 SOAP 请求提交给第 3 方。
您不能将客户端证书上传到服务器以便在服务器上进行 SOAP 签名。这是不受支持且易受攻击的方法。客户端证书的私钥(用于签署数据)绝不能离开客户端机器/设备。如果您需要使用客户端证书对任何内容进行签名,则必须仅在该客户端上执行签名操作。
推荐阅读
- amazon-dynamodb - DynamoDB 中的多表与复合键
- mysql - SpringApplication.run() 加载整个数据库
- java - springboot/hibernate 查询结果花费了太多时间
- csv - 使用 appendRow 将 csv 数据放入表格中的单独列中
- python - 比较列表中字符串的一部分
- php - PHP 不会将所有 Excel 文件导入 MySqli 数据库
- python - django 2.2.5 从一个应用程序导入 url 到另一个应用程序
- c - 语义版本控制:小改动还是大改动?(第二部分)
- npm - npm install - 包是否需要同时位于 peerDependencies 和依赖项中?
- c# - 未能在不同的项目中调用控制器操作