【发布时间】:2019-11-10 14:11:36
【问题描述】:
我需要使用我们的合作伙伴之一提供的 Web API。他们的 API 要求我使用证书进行连接。
我不想在我们的服务器 (VM) 上安装证书。这对我们的凤凰服务器策略适得其反。
我尝试以编程方式使用证书。问题是我得到一个错误:
AuthenticationException:根据验证程序,远程证书无效。
我使用此代码创建了我的HttpClient:
_certificate = new X509Certificate2(_certificateFile);
var handler = new WebRequestHandler();
handler.ClientCertificates.Add(_certificate);
var client = new HttpClient(handler) { BaseAddress = new Uri(_url) };
我可以通过覆盖证书验证使其工作:
ServicePointManager.ServerCertificateValidationCallback += delegate { return true; };
但这看起来风格很糟糕。
我已验证我的端点与证书中的 CN 匹配
AuthenticationException 仅仅是因为证书没有安装在证书存储区吗?
如果是,我可以暂时用代码安装证书并在之后将其删除吗?
【问题讨论】:
标签: c# windows-10 certificate httpclient