问题描述
我在调用 HttpWebRequest 时遇到问题,错误显示:请求已中止:无法创建 SSL/TLS 安全通道
首先我工作的公司有很高的安全标准,应用了防火墙。
我有三台服务器, 服务器 A:我的工作站。 服务器 B:我的同事工作站 服务器C:业务团队服务器
HttpWebRequest 的代码如下,它在我的工作站中正常工作 [ 没有 SecurityProtocol 代码工作 ] 请求以“https”开头的 URL
一旦我将其部署到我的同事服务器,他收到一条错误消息:
然后我在代码中添加了下面两行,我们再次部署后,它在我的同事服务器上工作。
现在,一旦我将它部署到业务服务器上,上述代码都没有工作,我们得到一个错误:请求被中止:无法创建 SSL/TLS 安全通道
请注意,我也尝试了以下方法:
- 最重要的一点与服务器的注册表有关,我将我的工作站注册表 HKEY_LOCAL_MACHINE\SYstem\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 的值更改为与我的同事服务器相同,然后我遇到了他遇到的相同错误这是“客户端和服务器无法通信,因为它们没有通用算法”,一旦我添加了他添加“securityProtocol”的代码,那么代码就可以正常工作..
我尝试将业务团队服务器的值更改为与我的工作站注册表值相同,但我们仍然收到相同的错误“请求已中止:无法创建 SSL/TLS 安全通道”
业务团队服务器值的注册:
值如下:
TLS1.0 客户 默认禁用 1 启用 0 服务器 默认禁用 1 启用 0
TLS1.1 客户 默认禁用 0 启用 0 服务器 默认禁用 0 启用 1
TLS1.2 客户 默认禁用 0 启用 ffffffff 服务器 默认禁用 1 启用 ffffffff
请帮忙,我不知道是否需要添加额外的代码,或者显示与服务器配置相关的错误??
解决方法
也许证书需要网络服务访问。您可以通过以下方式查看:
- 打开证书 MMC。
- 导航到证书(本地计算机)> 个人 > 证书。
- 右键单击您的证书,然后从上下文菜单中选择“所有任务”>“管理私钥...”。
- 设置适当的权限。