我在一台服务器 (Windows Server 2012) 上有一个 Web 应用程序 (IIS 8),它连接到另一台服务器 (Windows Server 2008) 上的 SQL Server Reporting Services 2012,直到最近它还运行良好。大约一周前,它停止工作了,从那时起,我就无法让系统再次运行。前提是我的代码调用 SSRS 来检索报告,然后将其提供给用户(出于安全原因,用户永远无法直接查看或访问报告)。
我的日志中的错误消息指出“请求已中止:无法创建 SSL/TLS 安全通道。”
Web 服务器报告“已生成致命警报并发送到远程端点。这可能会导致连接终止。TLS 协议定义的致命错误代码为 70。Windows SChannel 错误状态为 105。”这表明它正在尝试协商不受支持的协议。
已尝试修复(但失败了):
- 更新代码以强制使用 TLS 1.2
- 为两台服务器和不会自动打补丁的软件打上完整补丁
- 检查两台服务器上的防火墙(已被禁用)
- 使用 IIS Crypto 检查并更新允许的协议等,以禁用两台服务器上的不安全选项。 出于绝望(因为它出现在搜索结果和 Windows 更新说明中):
- 在 https://support.microsoft.com/en-us/help/4034879/how-to-add-the-ldapenforcechannelbinding-registry-entry 上根据 MS 添加了 LdapEnforceChannelBinding 注册表项。
- 按照 https://community.spiceworks.com/topic/1794963-schannel-event-id-36888-microsoft-no-help-at-all 上的指示进行安全检查豁免
- 从 Windows 更新中删除了最后一组补丁
到目前为止,什么都没有奏效,我唯一有的其他想法(但我不确定除了最后的手段外我是否愿意尝试)是
删除最新的 Windows 补丁- 禁用或删除加密密码(微软几年前曾建议这样做,网址:http://searchsecurity.techtarget.com/news/2240234856/Microsofts-Schannel-security-patch-affecting-TLS-connections
- 禁用数据执行保护(它已经以这种方式工作多年)
在我采取任何这些步骤之前,有人知道我可以尝试其他什么方法来让这两台服务器再次通信吗?
答案1
汤姆,我相信你已经解决了这个问题。你有没有确保两台机器的 Internet 选项中的“使用 TLS 1.0”和“使用 TLS 1.1”设置都已禁用(控制面板 --> Internet 选项 --> 高级选项卡 --> 安全)?
需要注意的是,任何仍使用 TLS 1.0/1.1 的网站或服务将无法进行通信。
如果您已经完成此操作,请分享您的工作流程。