.net - 即使我们将证书添加到 ClientCertificates,是否需要安装证书才能发出 Web 请求?
问题描述
我正在尝试使用 WebClient 发出 Web 请求。我通过以下方式在 Web 请求中添加客户端证书:
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.ClientCertificates.Add(new X509Certificate2(AzureKeyVaultHelper.GetCertificate()));
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.ServicePoint.ConnectionLimit = 10000;
return request;
}
在发出网络请求之前,我正在设置以下配置:
ServicePointManager.Expect100Continue = true;
ServicePointManager.DefaultConnectionLimit = 9999;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12;
所以在这里,我从 Azure Key Vault 获取证书(但来源无关紧要)。只要我的本地计算机上也安装了证书,该请求就可以工作。但是,如果不是,它会显示“无法创建 SSL/TLS 安全通道”。所以,我不明白它的全部意义。当我在请求中添加客户端证书时,是否也需要安装它?
请帮忙!!
解决方案
推荐阅读
- expo - 无法在世博项目中实现通用链接
- google-sheets - 单元格引用不起作用,它们似乎是字符串而不是引用,如何解决?
- mysql - laravel 检索 old() 其中查询值
- .net - 将 Angular 12 的 FormData 中的对象传递给 .net core api
- jpa - 为什么持久化上下文称为持久化上下文?
- android - Android有来电时如何设置弹窗(Overlay)?
- c++ - 想在 C++ 中将图像的二进制数据放入 RocksDB
- google-apps-script - 多列中的 Google 表格日期戳
- aws-lambda - 由于错误 AccessDeniedException(Lambda 别名作为 Cognito 触发器),AWS Cogntio 用户池引发 PreSignUp 调用失败
- mysql - Claculation Billing 金额和收到的金额