无法创建 SSL/TLS 安全通道 - 问题可能出在代理服务器上吗?
-
05-07-2019 - |
题
我有一个 C# 应用程序,它调用使用证书进行身份验证的 Web 服务方法。该代码有效,因为当它安装在服务器 A(没有代理)上时,它会进行身份验证。
当我在客户端站点的服务器 B 上安装代码时,它安装在代理后面。我确实尝试了几乎所有方法,但我不断收到此错误:
无法创建 SSL/TLS 安全通道
您认为这个问题可能是由代理服务器引起的吗?如果您有这方面的个人经验,请分享。
谢谢
解决方案
根据我的经验,几乎所有此类消息都是由于链中的某些机器(客户端、代理、服务器)由于某种原因不“喜欢”证书。
为了详细说明 twk 所说的,如果您使用自签名证书或您自己的 CA,则至少需要在服务器上(也可能在代理上)的受信任颁发机构存储中安装签名证书。
我遇到的常见问题:
- 服务器上的证书未由 PROXY 或 CLIENT 信任的机构签名
- CLIENT 上的证书未由 PROXY 或 SERVER 信任的机构签名
- 糟糕,我在创建要安装在客户端上的证书时忘记导出私钥
- 我的进程没有客户端上私钥的读取权限
- 客户端证书受密码保护,并且我在读取证书时没有指定凭据。
其他提示
我遇到了同样的问题。在我的情况下,证书需要网络服务访问权限。您可以通过
进行检查- 打开证书MMC
- 导航到证书(本地计算机)>个人>证书
- 右键单击您的证书,然后选择所有任务>管理私钥…从上下文菜单
- 设置适当的权限 醇>
如果您的证书不受信任(自签名),则C#客户端将拒绝连接。
不隶属于 StackOverflow