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

当我在客户端站点的服务器 B 上安装代码时,它安装在代理后面。我确实尝试了几乎所有方法,但我不断收到此错误:

无法创建 SSL/TLS 安全通道

您认为这个问题可能是由代理服务器引起的吗?如果您有这方面的个人经验,请分享。

谢谢

有帮助吗?

解决方案

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

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

我遇到的常见问题:

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

其他提示

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top