为 MSSQL 和 IIS 提供单独的 TLS 控制

为 MSSQL 和 IIS 提供单独的 TLS 控制

我们有一个系统需要提供数据库和 Web 服务。我们希望尽可能地锁定 TLS 安全设置。它在 Windows Server 2008 R2 上运行 MS SQL 2008。

我知道 SQL Server 2008 不支持任何高于 TLS 1.0 的协议。但是,我仍然希望 Web 服务拒绝传入的 TLS 1.0 协商尝试。不过,据我所知,两者似乎都是通过相同的 SCHANNEL 注册表项进行控制的。

有没有办法在同一系统上分别控制 MSSQL 和 IIS 的 TLS 协商,以便允许 MSSQL 使用 TLS 1.0,但强制 IIS 仅使用 TLS 1.1/1.2?

答案1

这是一个常见的烦恼,不仅限于 SQL,如果您的 Web 服务器需要连接到不支持 TLS 1.1 或 1.2 的第三方(Web 服务等),也可能会发生这种情况。我们解决这个问题的方法是在 Web 服务器前面使用负载平衡器 (MS ARR)。ARR 节点已锁定 SSL 配置以仅支持 TLS 1.1 和 1.2,但实际 Web 节点上仍启用 TLS 1.0。ARR 集群站点位于 DMZ 中,代理位于另一个区域中的 Web 服务器。

答案2

Windows 服务器都使用 SCHANNEL 安全提供程序。唯一可能解决这个问题的方法是,至少您的一款产品提供自己的安全提供程序。IIS 和 MSSSQL 都没有这样做。我还没有见过一款 Microsoft 产品这样做。

我建议你咬紧牙关,将其分割到两台服务器上。如果担心物理硬件,可以考虑设置 hyperv 和两台虚拟机。

如果失败了,您可能会发现设置某种反向代理(比如 Apache)可能会有所帮助。

相关内容