【发布时间】:2017-08-04 19:47:58
【问题描述】:
我有以下设置:
- 用于开发目的的自签名证书
- OWIN 托管的 Web API,作为 ASF 服务部署在本地 Azure Service Fabric 群集上。 Web API 使用带有相关开发证书的 HTTPS。
- 调用 Web API 的简单 .net 客户端应用程序。在该应用程序中设置了 ServicePointManager.ServerCertificateValidationCallback 方法,因此它始终返回 true(因为 CA 不受信任)
- 客户端应用程序和 Web API 都在同一台本地开发机器上。证书安装在“机器商店”的同一台机器上
现在我可以通过提供所需的客户端证书来使用 Fiddler 调用 Web api。但是,当我尝试通过 .net 代码(无论是 RestSharp 还是 WebRequest)执行相同操作时,客户端证书不存在于服务器端的 RequestContext 对象中。这会导致未经授权的响应。我不认为问题出在客户端代码上,证书已正确加载并分配给 http 客户端或请求。 Fiddler 显示到服务器的加密隧道。但是,客户端证书似乎不存在于服务器端。
我完全不知道我错过了什么可能导致这种行为。任何帮助将不胜感激。
【问题讨论】:
标签: ssl asp.net-web-api2 owin azure-service-fabric self-signed