首页 > 解决方案 > 即使我们将证书添加到 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 安全通道”。所以,我不明白它的全部意义。当我在请求中添加客户端证书时,是否也需要安装它?

请帮忙!!

标签: .nethttpwebrequestwebclientx509certificateclient-certificates

解决方案


推荐阅读