asp.net 如何在共享主机环境中加载.p12证书?

eaf3rand  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(116)

所以我连接到第三方API,它需要加载.p12证书才能进行身份验证。在本地主机上一切正常,但在远程共享主机上,我得到了可怕的“请求被中止:无法创建SSL/TLS安全通道”错误。我的网站是asp.net framework 4.7,并有一个安全的SSL连接。我已经添加了

  1. 'System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

字符串
到Global.asax(如果不是,它甚至不会在本地主机上运行)。感谢任何关于如何解决这个问题的灯。
下面是在localhost上运行良好的测试代码:

  1. System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
  2. Dim certPath As String = Server.MapPath("~/BolsasPixCert.p12")
  3. Dim uidCert As X509Certificate2 = New X509Certificate2(certPath, "")
  4. Dim options = New RestClientOptions("https://pix.api.efipay.com.br") With {
  5. .ClientCertificates = New X509CertificateCollection() From {
  6. uidCert
  7. },
  8. .ThrowOnAnyError = True
  9. }

zxlwwiss

zxlwwiss1#

好了,我终于在smarterasp.net KB上找到了答案:
1.添加X509键盘标志. MachineKeySet:
Dim uidCert As X509Certificate2 =新X509Certificate2(certPath,“",X509Keys Flags.MachineKeySet)
1.确保您正在bin文件夹中引用System.Net.Http. dll

相关问题