如何通过使用 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. 双击该证书,然后再确定证书是否满足以下要求:
    • 在常规选项卡中,您将收到以下消息:

      您有一个与该证书对应的私钥。
    • 在详细信息选项卡上的主题字段的值必须是服务器名称。
    • 增强型密钥用法字段的值必须是服务器身份验证 (< 数量 >)。
    • 在证书路径选项卡上的服务器名称必须出现在证书路径下。

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

详细信息


(4.22)Microsoft 管理控制台启用 SSL 加密的 SQL Server 实例的更多相关文章

  1. 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

    由于项目中必须得用JDK6来作为Java环境,于是连接SQLServer时出现了com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安 ...

  2. JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

    要从旧算法列表中删除3DES: 在JDK 8及更早版本中,编辑该 /lib/security/java.security文件并3DES_EDE_CBC从jdk.tls.legacyAlgorithms ...

  3. 在Windows Server 2008 R2 Server中,连接其他服务器的数据库遇到“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker ”

    项目代码和数据库部署在不同的Windows Server 2008 R2 Server中,错误日志显示如下: "未启用当前数据库的 SQL Server Service Broker,因此查 ...

  4. SQL问题:未启用当前数据库的 SQL Server Service Broker

    数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...

  5. 下载 Microsoft JDBC driver 7.2 for SQL Server

    下载 Microsoft JDBC driver 7.2 for SQL Server:https://www.microsoft.com/zh-cn/download/confirmation.as ...

  6. 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker

    昨晚遇到的这个问题,也知道Notifications service依赖底层的Service broker的.本以为只需要执行以下脚本对数据库启用Service broker即可. alter dat ...

  7. 基于32位Windows2003的数据库服务器优化,启用AWE,优化SQL Server

    最近几天,笔者所在的单位中的一台WEB服务器由于负载过大出现了问题,当同时在线的用户达到一定规模(2000-3000)时,频繁出现页面响应迟缓.超时等问题.服务器采用的操作系统是Windows Ser ...

  8. 解决“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker”错误

    转自:http://blog.csdn.net/andrew_wx/article/details/6947317 解决办法: ALTER DATABASE 数据库名称 SET NEW_BROKER  ...

  9. 错误:未启用当前数据库的SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker。

    解决方法: 打开SQL Server,新建查询: ALTER DATABASE 数据库名 SET NEW_BROKER WITH ROLLBACK IMMEDIATE;ALTER DATABASE 数 ...

随机推荐

  1. IDEA 最新版破解教程图解

    一.打开此网站 http://idea.lanyus.com 并下载红色框框内的包 二.拷贝到idea 安装目录bin文件下 三.编辑 idea64.exe.vmoptions 和 idea.exe. ...

  2. maven 打包报错(增加调试信息)

    eclipse配置debug详细信息 如下图:

  3. 网易大数据之数据存储:HDFS

    一.HDFS基础架构 1.HDFS特点:水平扩展.高容错性.廉价硬件.开源生态系统 2.Hadoop生态圈 1).分布式存储系统(HDFS),2).资源管理框架(YARN),3).批处理框架(MapR ...

  4. 深入理解 Java 虚拟机之学习笔记(2)

    本节介绍 Java堆的OutOfMemoryError测试 Eclipse Memory Analyzer分析内存溢出 虚拟机栈和本地方法栈StackOverflowError测试 方法区和运行时常量 ...

  5. 使用Java提供的MXBean来监控jvm创建了哪些线程

    MBean是一种JavaBean,MBean往往代表的是JMX中的一种可以被管理的资源.MBean会通过接口定义,给出这些资源的一些特定操作: 属性的读和写操作 可以被执行的操作 关于自己的描述信息 ...

  6. postgresql----聚合函数

    聚合函数是从一组输入中计算出一个结果的函数. 测试表 test=# \d tbl_test Table "public.tbl_test" Column | Type | Modi ...

  7. Ubuntu将网卡名称eno160改为eth0并且设置静态IP

    修改配置文件/etc/default/grub GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" 设置生效 update-grub ...

  8. hdu2328 Corporate Identity【string库使用】【暴力】【KMP】

    Corporate Identity Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  9. 一篇采访窥C#的未来

    今天坐公交时用手机打开 .NET Blog 阅读这周的 The week in .NET ,在看 Virtual Panel: What's Next for .NET? 这篇采访报道时,被其中对 R ...

  10. [No000012D]WPF(5/7)依赖属性

    介绍 WPF带来了很多传统 Windows 应用程序没有的新特性和选择.我们已经讨论了一些 WPF 的特性,是时候更进一步介绍其他特性了.当你读完这个系列之前的文章,我希望你已经或多或少地了解了 WP ...