在SQL Server 2005 中使用SSL加密通道

来源:互联网 发布:淘宝上怎么推广产品 编辑:程序博客网 时间:2024/05/17 01:22

 

最近单位的内部信息管理系统因为数据要上网公布,为了安全起见,将原管理系统对数据库的连接转为使用SSL通道 

配置方法如下:

1.搭建一个CA,申请服务器证书

    CA使用的是Windows 2003自带的证书管理器,安装可以从“添加/删除程序”里添加
    安装完成后启动 Internet Explorer 并浏览到 Microsoft 证书服务,例如:http://MyCA/certsrv
    单击“申请一个证书”,然后单击“下一步”。
    单击“高级申请”,然后单击“下一步”。 
    单击“使用表格向这个 CA 提交一个证书申请”,然后单击“下一步”。
     填写证书申请表,指明以下几点:
           在“名称”字段中,输入运行 SQL Server 的计算机的完全限定域名。例如:sql01.test.com或机器名
           在“预期目的”(或“需要的证书类型”)字段中,单击“服务器身份验证证书”。
            对于加密服务提供程序 (CSP),单击“Microsoft RSA 通道加密提供程序”。
 注意:Microsoft 基本加密提供程序 1.0 版和 Microsoft 增强加密提供程序同样有效。而 Microsoft 强加密提供程序无效。
       选择“使用本地机器保存”复选框。注意:不要选择“启用强私钥保护”。
       单击“提交”提交申请。
         如果证书服务器自动颁发证书,则可以立即安装证书。否则,可以浏览到 Microsoft 证书服务并选择“检查挂起的证书”,在 CA 管理员颁发证书之后安装证书。
2.在SQL Server 2005中进行配置

  在运行 SQL Server 的计算机上,单击“Microsoft SQL Server”程序组中的“服务器网络实用工具”。
  单击选择“强制协议加密”。
  验证是否启用了 TCP/IP 和/或命名管道。 其他协议不支持 SSL。
  单击“确定”关闭 SQL Server 网络实用工具,然后在“SQL Server 网络实用工具”消息框中单击“确定”。
   重新启动 SQL Server 服务。

3.在客户端的配置
   在IE的内容选项卡中导入CA的根证书

值得注意的几点

1.客户端程序在定义ConnectString时,如果定义了“Use Encryption for Data=True”需要将“data source”用申请的服务器证书名一致,如上文提到的sql01.test.com或机器名,不能使用IP代替,
示例:
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=sql01.test.com;Use Encryption for Data=True"

2.如果没有使用“Use Encryption for Data=True” 则,无须在客户端安装根证书,也可以使用IP来连接,这时也会建立SSL通道进行通讯。

3.在申请证书时,使用者的名称一定要与SQL Server的实例名一致,否则在SQL Server 的“服务器网络实用工具”的下拉框中无法看到这个证书。

本文中大部分来自于 http://www.51cto.com/art/200511/12725.htm

原创粉丝点击