C# &引用;无法创建SSL/TLS安全通道“;使用X.509对web服务进行身份验证时出错

C# &引用;无法创建SSL/TLS安全通道“;使用X.509对web服务进行身份验证时出错,c#,web-services,certificate,x509certificate,tls1.2,C#,Web Services,Certificate,X509certificate,Tls1.2,我见过几个线程出现相同的错误,并尝试了各种可能的解决方案,但到目前为止没有运气。我正在使用客户端的REST端点,它需要客户端证书进行身份验证。我拥有证书,并已通过双击.pfx并完成向导为当前用户和本地计算机安装了证书。我还使用winhttpcertcfg运行了以下操作,以便应用程序池标识帐户(网络服务)可以使用该证书: winhttpcertcfg -i "<path to .pfx> -c LOCAL_MACHINE\My -a "Network Service" -p "<

我见过几个线程出现相同的错误,并尝试了各种可能的解决方案,但到目前为止没有运气。我正在使用客户端的REST端点,它需要客户端证书进行身份验证。我拥有证书,并已通过双击.pfx并完成向导为当前用户和本地计算机安装了证书。我还使用
winhttpcertcfg
运行了以下操作,以便应用程序池标识帐户(
网络服务
)可以使用该证书:

winhttpcertcfg -i "<path to .pfx> -c LOCAL_MACHINE\My -a "Network Service" -p "<password for .pfx> 
当它尝试获取响应(
response.GetResponse()
)时,我看到以下错误:
请求被中止:无法创建SSL/TLS安全通道。

我尝试过的事情:

  • C:\Users\paldrich
    下授予对我的证书的
    网络服务的完全访问权限
  • 使
    ServicePointManager.SecurityProtocol
    SecurityProtocolType.Tls12
    SecurityProtocolType.Ssl3
  • 选中证书导入向导中当前用户和本地计算机的“将此密钥标记为可导出”
  • 已验证我是否已在Internet属性中签入
    使用Tls 1.0
    使用Tls 1.1
    使用Tls 1.2

    • 提交此文件后,我意识到我的问题所在。我需要使用
      X509Certificate2
      而不是
      X509Certificate2
      (我通过尝试2就知道了这一点),尽管我不明白为什么,除了X509Certificate2较新的事实之外。不管怎样,XML正在出现;它显示为一个Unicode转换字符串,但总体目标已经实现

      因此,不是:

      X509Certificate cert = new X509Certificate(certPath, "obfuscated-password");
      
      我必须使用:

      X509Certificate2 cert = new X509Certificate2(certPath, "obfuscated-password");
      

      你在windows上工作吗?您是否可以尝试在WindowsEvent中启用Capi2日志以查看有关此问题的更多信息?我已经启用了,很高兴知道这一点。然而,在提交这篇文章之后,我意识到我的问题是什么。我需要使用
      X509Certificate2
      而不是
      X509Certificate2
      ,尽管我不明白为什么,除了
      X509Certificate2
      较新之外。然后你可以发布答案并在解决问题时接受;)
      X509Certificate2 cert = new X509Certificate2(certPath, "obfuscated-password");