我有一个C#应用程序,它调用一个使用证书进行身份验证的Web服务方法。代码可以工作,因为当它安装在服务器A(没有代理)上时,它会进行身份验证。
当我在服务器B上安装代码时,在客户端站点,它安装在一个代理后面。我真的尝试了几乎所有的方法,但我总是得到这个错误:
无法创建SSL/TLS安全通道
你认为这个问题可能是由代理服务器引起的吗?如果你有任何个人经验,请分享。
谢谢
我有一个C#应用程序,它调用一个使用证书进行身份验证的Web服务方法。代码可以工作,因为当它安装在服务器A(没有代理)上时,它会进行身份验证。
当我在服务器B上安装代码时,在客户端站点,它安装在一个代理后面。我真的尝试了几乎所有的方法,但我总是得到这个错误:
无法创建SSL/TLS安全通道
你认为这个问题可能是由代理服务器引起的吗?如果你有任何个人经验,请分享。
谢谢
5条答案
按热度按时间7ajki6be1#
根据我的经验,几乎所有这样的消息都是由于链中的某台机器(客户机、代理、服务器)由于某种原因不“喜欢”证书。
为了详细说明twk所说的内容,如果您使用自签名证书或您自己的CA,您需要至少在服务器上的可信颁发机构存储中安装签名证书,可能还需要在代理上安装。
我遇到的常见问题:
h9vpoimq2#
我遇到了同样的问题。在我的情况下,证书需要网络服务访问。您可以通过
1.打开证书MMC
1.导航到证书(本地计算机)〉个人〉证书
1.右键单击证书,然后从上下文菜单中选择所有任务〉管理私钥...
1.设置适当的权限
68bkxrlz3#
如果您的证书不受信任(是自签名的),则C#客户端将拒绝连接。
ktecyv1j4#
将以下内容添加到构造函数:
jdg4fx2g5#
我的答案与Snakebyte的答案相似,在我的例子中,证书的私钥需要IIS_IUSRS用户访问。
1.打开证书MMC
1.右键单击证书,然后从上下文菜单中选择所有任务〉管理私钥...
1.添加IIS_IUSRS用户并设置适当的权限。