(4.22)Microsoft 管理控制台启用 SSL 加密的 SQL Server 实例

时间:2022-01-21 20:36:14

如何通过使用 Microsoft 管理控制台启用 SSL 加密的 SQL Server 实例

关键词:MSSQL加密,sql server加密,sql server客户端与服务器传输内容加密

转自:https://support.microsoft.com/zh-cn/help/316898/how-to-enable-ssl-encryption-for-an-instance-of-sql-server-by-using-mi

客户端与服务器建立连接的过程默认是加密的;

问:MS SQL 服务器端配置好了强制加密协议,为什么客户端不勾选"加密连接”依然能连?

  客户端和服务端并不需要同时配置,任意一端要求加密,则数据传输都会加密,可以用 network monitor 抓包确认,如果没有加密,则可以在这个里面从 TDS 包看到明文数据

适用于: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL 2005 Server Enterprise 详细

重要提示:本文章是 Microsoft 软件自动翻译的结果,而非专业译者翻译的结果。 Microsoft 提供专业人员翻译的文章、由自动翻译生成的文章以及来自 Microsoft 社区的文章翻译,因此你能够以自己的语言阅读所有知识库文章。 需要注意的是,由自动翻译生成的文章(包括 Microsoft 社区审阅的文章)可能包含词汇、句法或语法错误。 对于因不正确的内容翻译或使用不正确的内容翻译而造成的不准确或错误或任何损害,Microsoft 概不负责。

查看原始英文文章:316898

 
 

概要


本分步指南介绍如何在运行 Microsoft SQL Server 通过使用 Microsoft 管理控制台 (MMC) 并描述如何在服务器上,或为特定的客户端启用 SSL 加密的计算机上安装证书。

注意:此方法不能用于将证书放在群集 SQL Server 的服务器上。为群集实例,请参见方法在"启用证书用于 SSL 在群集 SQL Server 安装,"文中所述这篇文章。

如果您的公司实现企业证书颁发机构时,可以申请证书的独立 SQL Server 的服务器,然后使用安全套接字层 (SSL) 加密的证书。

您可以启用强制协议加密选项在服务器或客户端上。

注意:若要在服务器上,启用强制协议加密,使用服务器网络实用程序或 SQL Server 配置管理器,具体取决于的 SQL Server 版本。若要在客户端上启用强制协议加密,使用客户端网络实用程序或 SQL Server 配置管理器。

重要:如果您通过使用客户端网络实用工具 (对于 SQL Server 2000年客户端) 或 SQL 本机客户端< 版本 >配置 (32 位) 或 SQL 本机客户端启用 SSL 加密< 版本 >配置页面中 SQL Server 配置管理器中,从该客户端的所有连接都请求 SSL 加密对客户端连接到任何 SQL Server。

如果您在服务器上启用强制协议加密,您必须在服务器上安装证书。

如果您想要在客户端上启用强制协议加密,您必须在服务器上有证书,则客户端必须更新信任服务器证书受信任的根颁发机构。

注意:如果您使用 SQL Server 使加密的连接的 SQL Server 实例,您可以设置ForceEncryption选项的值为是。有关详细信息,请参阅"启用加密连接到数据库引擎 (SQL Server 配置管理器)"SQL Server 联机丛书中:

在 Microsoft 管理控制台 (MMC) 的服务器上安装证书

若要使用 SSL 加密,您必须在服务器上安装证书。按照以下步骤安装通过使用 Microsoft 管理控制台 (MMC) 管理单元中的证书。

如何配置 mmc 管理单元

  1. 若要打开证书管理单元,请执行以下步骤:
    1. 若要打开 MMC 控制台中,单击开始,然后单击运行。在运行对话框中键入:

      MMC

    2. 在控制台菜单上,单击添加/删除管理单元-...。
    3. 单击添加,然后单击证书。再次单击添加。
    4. 提示您打开管理单元的当前用户帐户的服务帐户或计算机帐户。选择计算机帐户。
    5. 选择本地计算机,然后单击完成。
    6. 单击关闭添加独立管理单元对话框中。
    7. 单击添加/删除管理单元对话框中的确定。您已安装的证书位于证书文件夹的个人的容器中。
  2. 使用 MMC 管理单元中的服务器上安装证书:
    1. 单击左侧窗格中选择个人文件夹。
    2. 在右窗格中右键单击,指向所有任务,,然后单击申请新证书...。
    3. 证书申请向导对话框将打开。单击下一步。选择证书类型是"电脑"。
    4. 在好记的名称文本框中可以键入证书的友好名称或将文本框保留为空,并完成向导。完成向导后,您将看到使用完全合格的计算机的域名的文件夹中的证书。
    5. 如果您想要为特定客户端或客户端启用加密,请跳过此步骤并进入本文的启用对特定客户端的加密部分。

      对于SQL Server 2000年中,要启用服务器上的加密,请打开服务器网络实用工具上的服务器证书已安装,然后单击以选中强制协议加密复选框。重新启动才能生效的加密 (SQL Server) MSSQLServer 服务。您的服务器现在就可以使用 SSL 加密。

      对于SQL Server 2005 及更高版本,若要启用加密,在服务器上,打开 SQL Server 配置管理器,请执行下列操作:

      1. 在SQL Server 配置管理器中,展开SQL Server 网络配置、协议 < 服务器实例 >中,用鼠标右键单击,然后选择属性。
      2. 在证书选项卡上从证书下拉菜单中,选择所需的证书,然后单击确定。
      3. 在标志选项卡上,在ForceEncryption框中,选择是,然后单击确定以关闭该对话框。
      4. 重新启动 SQL Server 服务。

在群集 SQL Server 安装启用 SSL 证书

在下面的注册表项中指定 SQL Server 用于加密连接的证书:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate

此项包含一个属性的证书称为标识服务器中的每个证书的指纹。在群集环境中,此注册表项将被设置为 Null 的即使正确的证书存储中存在。要解决此问题,必须采取下列额外的步骤,在每个群集节点上于每个节点安装证书之后):
 

  1. 导航到存储该 FQDN 证书的证书存储区。在属性页上的证书,请转到详细信息选项卡和证书的指纹值复制到记事本窗口。
  2. 删除在记事本的指纹值中的十六进制字符间的空格。
  3. 启动注册表编辑器,定位到以下注册表项,和第 2 步中复制的值:
    HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\< 实例 >\MSSQLServer\SuperSocketNetLib\Certificate
  4. 如果 SQL 虚拟服务器当前位于此节点故障转移到另一个群集上的节点,然后重新启动注册表更改的位置的节点出现。
  5. 重复此过程的所有节点上。

此过程中的屏幕快照,请参见以下博客文章在 MSDN 上:

为特定的客户端启用加密

客户端请求 SSL 加密的客户端计算机必须信任该服务器证书和证书必须已经存在于服务器上。您必须使用 mmc 管理单元导出受信任的根证书颁发机构使用的服务器证书:

  1. 若要导出服务器证书的受信任根证书颁发机构 (CA),请执行以下步骤:
    1. 打开 MMC,然后在个人文件夹中查找您的证书。
    2. 用鼠标右键单击证书名称,然后单击打开。
    3. 查看证书路径选项卡,请注意顶部的大多数项目。
    4. 导航到受信任的根证书颁发机构文件夹,然后找到说明该证书颁发机构在步骤 c 中...
    5. 用鼠标右键单击CA,指向所有任务,然后单击导出。
    6. 选择所有默认设置,然后将导出的文件保存到硬盘中,客户端计算机访问该文件的位置。
  2. 请按照以下步骤导入客户端计算机上的证书:
    1. 通过使用 MMC 管理单元中,定位到客户端计算机,然后浏览到受信任的根证书颁发机构文件夹。
    2. 用鼠标右键单击受信任的根证书颁发机构文件夹,指向所有任务,然后单击导入。
    3. 浏览,然后选择您在步骤 1 中生成的证书 (.cer 文件)。选择默认设置以完成向导的其余部分。
    4. 使用 SQL Server 客户端网络实用程序。
    5. 单击以选中强制协议加密选项。您的客户端现在就可以使用 SSL 加密。

如何测试您的客户端连接

若要测试您的客户端连接,您可以:

  • 使用 SQL 管理工作室。

    -或者-

  • 使用的任何 ODBC 或 OLEDB 应用程序可以在其中更改连接字符串。

SQL Server 管理 Studio

若要使用 SQL Server 管理 Studio 进行测试,请执行以下步骤:

  1. 定位到 SQL Server 配置管理器中的 SQL Server 客户端< 版本 >配置页。
  2. 在属性窗口中,将设置强制协议加密选项为"是"。
  3. 连接到服务器正在运行 SQL Server 通过使用 SQL Server 管理 Studio。
  4. 通过使用 Microsoft 网络监视器或网络嗅探器监视通信。

ODBC 或 OLEDB 应用程序连接字符串示例

如果使用 ODBC 或 OLEDB 连接字符串,如 SQL 本机客户端提供程序中的,添加加密关键字并将其设置为true ,在连接字符串中,然后监视通信使用一种工具,如 Microsoft网络监视器或网络嗅探器

故障排除

您已成功安装证书之后,在证书选项卡上的证书列表中没有出现证书。

注意:证书选项卡处于打开 SQL Server 配置管理器协议实例 < 名称 >属性对话框。

因为您可能已安装证书无效,将出现此问题。如果证书是无效的它将不会在证书选项卡上列出。要确定您安装的证书是否有效,请执行以下步骤:

  1. 打开证书管理单元。若要执行此操作,请参阅"如何配置 mmc 管理单元"部分中的步骤 1。
  2. 在证书管理单元中,展开个人,然后展开证书。
  3. 在右窗格中,找到您所安装的证书。
  4. 确定证书是否满足以下要求:
    • 在右窗格中,为该证书预期目的列中的值必须是服务器身份验证。
    • 在右窗格中,颁发给列中的值必须是服务器的名称。
  5. 双击该证书,然后再确定证书是否满足以下要求:
    • 在常规选项卡中,您将收到以下消息:
      您有一个与该证书对应的私钥。
    • 在详细信息选项卡上的主题字段的值必须是服务器名称。
    • 增强型密钥用法字段的值必须是服务器身份验证 (< 数量 >)。
    • 在证书路径选项卡上的服务器名称必须出现在证书路径下。

如果不满足这些要求的任何一个,则该证书是无效的。

详细信息