无法创建SSL / TLS安全通道 – 问题可能是代理服务器吗?

我有一个ac#app,它调用一个使用证书进行身份validation的Web服务方法。 该代码有效,因为当它安装在服务器A(没有代理)时,它进行身份validation。

当我在服务器B上安装代码时,在客户端站点上,它安装在代理后面。 我几乎尝试了所有的东西,但我一直收到这个错误:

无法创建SSL / TLS安全通道

您是否认为此问题可能是由代理服务器引起的? 如果您对此有任何亲身经历,请分享。

谢谢

根据我的经验,几乎所有这些消息都归因于链中的某些机器(客户端,代理,服务器)由于某种原因而不“喜欢”证书。

要详细说明twk所说的内容,如果您使用自签名证书或您自己的CA,则需要至少在服务器上的受信任机构存储中安装签名证书,并且可能在代理上。

我遇到的常见问题:

  • 服务器上的证书未由PROXY或CLIENT信任的权限签名
  • CLIENT上的证书未由PROXY或SERVER信任的权限签名
  • 糟糕,我在创建要在客户端上安装的证书时忘记导出私钥
  • 我的进程对客户端上的私钥没有读取权限
  • 客户端证书受密码保护,我在读取证书时未指定凭据。

我遇到了同样的问题。 在我的情况下,证书需要网络服务访问权限。 你可以查看

  1. 打开证书MMC
  2. 导航到证书(本地计算机)>个人>证书
  3. 右键单击您的证书,然后从上下文菜单中选择“所有任务”>“管理私钥…”
  4. 设置适当的权限

如果您的证书不受信任(自签名),那么C#客户端将拒绝连接。