欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

安全第一,在sql server和client之间配置ssl连接

程序员文章站 2022-05-05 17:25:31
...

MS SQL Server的密码明文传输是 安全 上的一个缺陷。具体的我就不描述了,有兴趣可以参考一下这个文章: 深入探索sql2000网络 连接 安全 问题 所以我只能说说我是怎么实现sql server 2000的ssl的。因为资料很多,我只说一个大概步骤。并且我把我用过的资料、

MS SQL Server的密码明文传输是安全上的一个缺陷。具体的我就不描述了,有兴趣可以参考一下这个文章:深入探索sql2000网络连接安全问题
所以我只能说说我是怎么实现sql server 2000的ssl的。因为资料很多,我只说一个大概步骤。并且我把我用过的资料、我遇到的问题都在后面列举出来了。需要的可以自己参考
关于启用 sql server 2000 ssl 连接的操作
在默认情况下,Sql Server2000对于客户端的连接是明文的,有可能被网络中的其他恶意攻击者使用嗅探软件所监听。所以在需要高度安全性的场合,可以考虑在客户端和服务器端使用ssl连接以提高安全性。
配置sql2000使用ssl ,必须在网络中存在Certificate Server 。配置步骤:
1. 在“添加删除程序”-添加组建—选择“证书服务”
2. 按照证书服务的提示,选择安装企业根ca或者独立根ca 。我选择的是独立根ca
3. 完成安装后,确认管理工具里面,出现“证书颁发机构”的插件
下面是为sql server 请求一个证书的操作:
1. 如果前面选择的是独立根ca的话,打开ie浏览器。在地址栏输入:http://servername/certsrv ,向你的证书服务器提交一个证书申请。
2. 在申请页面,选择请求证书—高级请求—使用表格提交请求,下一步
3. 在证书内容里面,要填写证书的名称。这里要注意名称必须选择服务器的fqdn名称,否则有可能会出现错误。申请的证书选择“服务器验证证书(Server Authentication Certificate)”,并且选择“使用本地计算机存储”,提交请求
4. 在ca中许可这个申请,然后在ie中选择察看提交的申请选项,并且安装证书
下面可以确认证书安装是否正确:
1. 在ie—属性—内容—证书选项,查看是否存在刚才颁发的证书,并且作用为“服务器身份验证”
2. 打开mmc控制台,添加“证书”插件(包括计算机帐号)。确认刚才颁发的证书存在。

Sql服务器上的操作:
1. 在sql的“服务器实用工具(SQL Server Network Utility)”里,选择“强制使用协议加密”
2. 重新启动MSSQLServer service 。确认能正常启动
3. 在“客户端实用工具” ,选择“强制使用协议加密”

测试:
可以使用Query Analyzer和ODBC application进行连接,然后使用网络监视软件进行抓包,确认是否启用了ssl 。

常见错误:
1. 在安装证书服务的时候,将证书服务的名称设置成和主机名一样的名称。这样会导致sql server在初始化时失败,这个问题可以看kb:http://support.microsoft.com/default.aspx?scid=kb;en-us;302409&Product=sql2k
2. 在申请证书的时候,证书的名称没有使用fqdn完全限定域名。这是引起sql server “SSL Security error :ConnectionOpen (SECDoClientHandshake()”错误的原因之一。Kb309398阐述了这个问题:http://support.microsoft.com/default.aspx?scid=kb;en-us;309398&Product=sql2k
3. 关于可以参考的安装配置文章:HOW TO: Enable SSL Encryption for SQL Server 2000 with Certificate Server 可以参看kb:http://support.microsoft.com/default.aspx?scid=kb;en-us;276553&Product=sql2k#2(有ppt可下载)
http://support.microsoft.com/default.aspx?scid=kb;en-us;324777&Product=sql2k