SQL Server 2000和SSLencryption

我们是一个数据中心,它拥有一个SQL Server 2000环境,它为我们销售的产品提供数据库服务,这个产品在我们的许多客户和他们的工作站上都​​是作为一个富客户端应用程序加载的。

目前,应用程序使用从客户端到数据中心的直接ODBC连接。

我们需要开始对证书进行encryption – 因为现在的一切都是纯文本的,而且validation的encryption很弱 – 我试图确定在服务器上实现SSL的最佳方式,同时尽量减less客户端的影响。

但是有一些事情:

1)我们有我们自己的Windows域,我们所有的服务器都join到我们的私人领域。 我们的clietns没有任何我们的领域。

2)通常,我们的客户通过以下方式连接到我们的数据中心服务器:a)使用TCP / IP地址b)使用我们通过互联网发布的DNS名称,区域从我们的DNS服务器传输给我们的客户,或者客户端可以添加静态HOSTS条目。

3)从我所了解的启用encryption,我可以去networking实用程序,并select我想encryption的协议的“encryption”选项。 如TCP / IP。

4)当selectencryption选项时,我可以select安装第三方证书或自签名。 我已经testing了自签名,但确实有潜在的问题。 我会解释一下。 如果我使用第三方证书,如Verisign或networking解决scheme…我需要什么样的证书? 这些不是IIS证书? 当我通过微软的证书服务器创build一个自签名的时候,我必须select“身份validation证书”。 这在第三方世界中转化为什么?

5)如果我创build了自签名证书,我知道“问题到”名称必须与运行SQL的服务器的FQDN相匹配。 在我的情况下,我必须使用我的私人域名。 如果我使用这个,当我尝试连接到我的SQL Server时,这对我的客户端有什么影响? 当然,他们不能解决我的私人DNS名称在他们的networking….

我还确认,在安装自签名证书时,必须位于运行SQL Server的用户帐户的本地个人存储中。 如果FQDN与证书的“问题到”相匹配,并且SQL正在安装证书的帐户下运行,SQL Server才会启动。

如果我使用自签名证书,这是否意味着我必须让每一位客户安装它来validation?

6)如果我使用第三方证书,这听起来像是最好的select,那么当访问我的专用广域网连接的私有服务器来validation证书时,是否所有的客户端都必须访问互联网?

我该如何处理FQDN? 这听起来像他们必须使用我的私人域名 – 这是不公布的 – 并不能再使用我设置为他们使用的?

7)我打算很快升级到SQL 2000。 用SQL 2005比SQL 2000更容易/更好地设置SSL吗?

任何帮助或guiadance将不胜感激

老实说,你最好的select是停止直接进入数据库服务器。 这是一个固有的弱解决scheme(安全明智),因为任何人都可以尝试使用sa帐户login到SQL Server。

更好的解决scheme是在Web服务器上设置Web服务,让应用程序通过HTTPS将请求发送到此Web服务,然后让Web服务将请求转发到数据库,同时数据库与Web服务器断开连接(或防火墙)公共互联网。

这也给你的优势是能够切换数据库没有问题,因为Web服务器只是与数据库交谈。 此外,您可以负载平衡Web层,以便随着事情的发展,您可以将连接负载分散到Web服务器上。