我在SQL2000上做ssl加密,证书已经颁发客户端也通过检验了,sql启用“强制加密协议”。当停止服务器再启动时整个sql的服务就起不来。那位高手做过这个事情,谢谢了!

解决方案 »

  1.   

      
    如何启用SSL加密SQL Server 2000 概要本文列出了步骤, 必须使用来如果网络环境中有有效证书服务器启用安全套接字层 (SSL) 加密用于 Microsoft SQL Server 2000。 如果您从第三方证书供应商, 购买证书请按照说明由供应商提供。 比所有网络库通过 SSL 加密证书和 SQL Server 2000 允许加密连接。 您可以通过使用 SuperSocket Net-Library、 Ssnetlib.dll 或 Dbnetlib.dll 启用 SQLServer 加密 If you use SSL Encryption on a SQL Server cluster, you can use the same procedures except that the certificate must be issued to the fully qualified domain name of the Virtual SQL Server and not the individual computer name. 此外, 方式 Microsoft 建议您使用证书, SQLServer 群集上 SSL 加密是:  1. 群集中每个节点上安装证书。  
    2. 每个客户上安装受信任根颁发机构。 
    3. 启用通过客户端网络实用工具从客户机 强制协议加密 选项。  
    有关详细信息, 请单击下列文章编号以查看 Microsoft 知识库中相应: 319349 (http://support.microsoft.com/kb/319349/) BUG: Turning 有关 " 强制协议加密 " 选项是不可恢复如果没有没有证书 
    To encrypt communication between a client computer and a server, you must first decide if you want the encryption to be per server or on a per client basis. 如果您启用服务器上加密是当前 SQLServer 限制记住。 加密会对所有传入连接。 如果启用加密, 客户机上所有来自客户传出连接尝试建立加密连接到任何 SQLServer。此外, 从服务器, 启用强制协议加密时它加密登录和数据。 但是, 不需要客户端以信任根颁发机构相同。 如果希望客户端以信任根颁发机构, 相同以强制协议加密客户端上必须使用客户端网络实用工具或连接字符串选项 这是设计使然。如果证书是无效或者是用于启动 MSSQLServer 服务服务帐户无法找到证书不启动 SQLServer。 因此, Microsoft 建议您在您是通过使用同一用户帐户, 用于启动 MSSQLServer 服务登录请求证书。 如果是运行 SQLServer, 计算机上安装了 Microsoft Internet Information Services (IIS) 可以同时使用 IIS 服务管理器向导在 目录安全性 选项卡 证书必须为该服务器的完全限定域名 (FQDN) 颁发服务器证书。 对证书名称无法使用 IP 地址。 通过 FQDN 或 NetBIOS 名称是服务器客户机必须请求连接到服务器。 无法通过运行 SQLServer 计算机的 IP 地址连接到服务器。 If the computer has multiple certificates installed in the user store or in the machine store, you may have to specify which certificate should be used for SQL Server.在以下注册表项中创建证书值为 REG _ BINARY 类型: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib 
    单击证书值, 上, 然后键入数据列中证书指纹属性值。 例如, 注册表导出它时应类似于下面: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib] "Certificate"=hex:2e,67,3e,84,4a,4f,e0,7f,08,42,6a,7a,35,9b,01,94,76,67,0b
    如果此注册表项设置为 0 上, 计算机忽略证书计算机上。 运行 SQLServer 计算机将启动但无法读取计算机上证书。 如果要使用加密和计算机只有一个证书, 您执行不需要此注册表项。要验证加密连接, 您已成功唯一方法是以捕获两台计算机通过使用 Microsoft 网络监视器或网络 Sniffer 工具之间通信。 有关如何安装 Microsoft 网络监视器, 请单击下列文章编号以查看 Microsoft 知识库中相应: 243270 (http://support.microsoft.com/kb/243270/) 如何在 Windows 2000 安装网络监视器 
    通过证书服务器申请和安装证书 1. 在您是通过使用同一帐户, 用于启动 MSSQLServer 服务登录进行 HTTP 连接到服务器证书。 例如, 在进行下列连接: http://mycertserver/certsrv (http://mycertserver/certsrv)
    注意 Microsoft 建议, 您通过使用域用户帐户或具有最低特权本地用户帐户和本地系统帐户不启动 MSSQLServer 服务。  
    2. 选择, 申请证书 , 然后单击 下一步 。  
    3. 中选择申请类型: 页, 单击以选择 高级申请 , 然后单击 下一步 。 
    4. 选择 提交证书申请向这个 CA 使用窗体 , 然后单击 下一步 。 
    5. 在 名称 框中输入计算机的完全限定域名称。 Ping 计算机以获取完全合格域名称如果不确信它是什么。 
    6. 在 预期目的 节, 将选定内容更改为 服务器身份验证证书 通过使用下拉列表框从客户身份验证证书。 而对于企业证书颁发机构会选择一个模板。 
    7. 单击本地计算机证书存储中 存储证书 选项。  
    8. 保留所有其他项目作为默认值。 单击 提交 。 
    9. 与 证书安装到 超链接最后一页提供您。 单击 安装此证书 。 To verify that your certificate installation is correct, use either the MMC Certificate snap-in to verify the certificates or use the CertUtil.exe tool that is installed on the certificate server to list the certificates. 要加载证书 MMC 管理单元, 请按照下列步骤操作:  1. 要打开 MMC 控制台, 开始, 依次 运行 。  
    2. 在 运行 对话框中, 键入 mmc , 然后单击 确定 。 
    3. 在 控制台 菜单上, 单击 添加/删除管理单元 。 
    4. 添加 , 依次 证书 。  
    5. 单击 添加 。 提示您重新打开管理单元对于当前用户帐户, 对服务帐户, 或者对于计算机帐户。  
    6. 单击 计算机帐户 。 
    7. 本地计算机 , 依次 完成  
    8. 单击 关闭 。 
    9. 单击 确定 。您安装证书位于 个人 容器中证书文件夹中。 
    双击证书, 并确保所有以下为真:  • 私钥与该证书。 
    • 证书主题名称等于计算机的 FQDN。 
    • 预期目的的证书是用于服务器身份验证。 
    • 证书路径具有有效链到根颁发机构。 SQLServer 上启用 SSL 加密服务器, 上安装证书后可通过以下步骤启用 SSL 加密:  1. 使用 SQLServer 网络实用工具然后单击以选中 " 强制协议加密 复选框。 
    2. 停止并重新启动 MSSQLServer 服务对于默认实例或命名实例。 
    3. 使用 SQLServer 错误日志以验证 SQLServer, 它启动时没有报告任何错误。 为特定客户启用 SSL 加密如果您不想启用 SSL 加密服务器, 上全局可以启用来自特定客户端 SSL 加密。 不, 使用一个或其他服务器和客户端上启用 SSL 加密。 如果您启用 SSL 加密, 每客户基础上客户端计算机必须信任服务器证书。 证书服务器上必须已经存在。 客户机不需要证书, 但是它必须有服务器证书作为受信任根证书颁发机构。 请按照下列步骤来每客户基础上启用 SSL 加密:  1. 请确保您禁用或清除服务器网络实用工具中 强制协议加密 选项。 
    2. 通过使用网络监视器或网络 Sniffer 工具来验证未加密之间客户和服务器计算机通信进行测试连接从客户机。 
    3. 右击 InternetExplorer 图标位于运行 SQLServer 计算机上桌面。 
    4. 右击 属性 。 
    5. 单击 内容 选项卡。 
    6. 单击 证书 。 
    7. 单击 可信根证书颁发机构 。 
    8. 单击以选中 颁发机构 。 
    9. 导出 , 依次 下一步 。 
    10. 在 导出文件格式 对话框中, 单击 加密消息语法标准 - PKCS # 7 证书 (.P7B) 。  
    11. 单击以选中 包含尽可能证书路径中所有证书 复选框。 
    12. 选择用于导出证书文件名。 确保文件位置为某个位置, 客户机可以后访问导入。 
    13. 单击 下一 , 然后单击 完成 。 
    14. 客户机上选择 Internet 浏览器, 右击 属性 、 指向 内容 , 并单击 证书 。 
    15. 单击 " 受信任根证书颁发机构 选项卡。 
    16. 导入 , 单击 , 单击 浏览 , 依次 更改文件的类型到: PKCS # 7 Certificates(*.p7b) 。 
    17. 选择只从 SQLServer, 导出证书, 然后单击 打开 。 请单击 下一步 。 
    18. 单击以选中 自动选择证书存储基于证书的类型 复选框。 
    19. 单击 YES 可以将下列证书添加到根存储。 
    20. 单击 下一 , 然后单击 完成 。 
    21. 对话框打开与文本: 导入成功 。  
    22. 验证并且 预期用途 , 表示 所有 证书受信任根证书颁发机构, 下显示。 
    23. 单击要验证与证书没有错误, 报告 视图 。 
    24. 单击 证书路径 选项卡, 然后再检查证书状态以查看它是否设置为 确定 。 
    25. 打开客户端网络实用工具, 然后单击以选中 " 强制协议加密 复选框。  测试加密从客户端要测试加密从客户端, 使用下列方法之一:  • 使用查询分析器工具。 
    • 其中可以更改连接字符串使用 ODBC 应用程序。 查询分析器
    若要使用 SQL 查询分析器工具, 测试请按照下列步骤:  1. 使用 SQLServer 客户端网络实用工具。 
    2. 单击以选中 " 强制协议加密 " 复选框。 
    3. 连接到服务器通过查询分析器运行 SQL Server 2000。 
    4. 通过 Microsoft 网络监视器或网络 Sniffer 监视通信。 ODBC 应用程序
    若要以 ODBC, 测试请按照下列步骤:  1. 修改 ODBC 或 OLEDB 连接字符串: ODBC 
    Driver=SQLServer;Server=ServerNameHere;UID=UserIdHere;PWD=PasswordHere;Network=DBNETLIB.DLL;Encrypt=YES      
    OLEDB 
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbNameHere;Data Source=ServerNameHere;Use Encryption for Data=True
     
    2. 连接到运行 SQL Server 2000 计算机并通过 Microsoft 网络监视器或网络 Sniffer 监视通信。