(4.22)Microsoft 管理控制台启用 SSL 加密的 SQL Server 实例
如何通过使用 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 软件自动翻译的结果,而非专业译者翻译的结果。 Microsoft 提供专业人员翻译的文章、由自动翻译生成的文章以及来自 Microsoft 社区的文章翻译,因此你能够以自己的语言阅读所有知识库文章。 需要注意的是,由自动翻译生成的文章(包括 Microsoft 社区审阅的文章)可能包含词汇、句法或语法错误。 对于因不正确的内容翻译或使用不正确的内容翻译而造成的不准确或错误或任何损害,Microsoft 概不负责。
查看原始英文文章:316898
概要
注意:此方法不能用于将证书放在群集 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 管理单元
- 若要打开证书管理单元,请执行以下步骤:
- 若要打开 MMC 控制台中,单击开始,然后单击运行。在运行对话框中键入:
MMC
- 在控制台菜单上,单击添加/删除管理单元-...。
- 单击添加,然后单击证书。再次单击添加。
- 提示您打开管理单元的当前用户帐户的服务帐户或计算机帐户。选择计算机帐户。
- 选择本地计算机,然后单击完成。
- 单击关闭添加独立管理单元对话框中。
- 单击添加/删除管理单元对话框中的确定。您已安装的证书位于证书文件夹的个人的容器中。
- 若要打开 MMC 控制台中,单击开始,然后单击运行。在运行对话框中键入:
- 使用 MMC 管理单元中的服务器上安装证书:
- 单击左侧窗格中选择个人文件夹。
- 在右窗格中右键单击,指向所有任务,,然后单击申请新证书...。
- 证书申请向导对话框将打开。单击下一步。选择证书类型是"电脑"。
- 在好记的名称文本框中可以键入证书的友好名称或将文本框保留为空,并完成向导。完成向导后,您将看到使用完全合格的计算机的域名的文件夹中的证书。
- 如果您想要为特定客户端或客户端启用加密,请跳过此步骤并进入本文的启用对特定客户端的加密部分。
对于SQL Server 2000年中,要启用服务器上的加密,请打开服务器网络实用工具上的服务器证书已安装,然后单击以选中强制协议加密复选框。重新启动才能生效的加密 (SQL Server) MSSQLServer 服务。您的服务器现在就可以使用 SSL 加密。
对于SQL Server 2005 及更高版本,若要启用加密,在服务器上,打开 SQL Server 配置管理器,请执行下列操作:
- 在SQL Server 配置管理器中,展开SQL Server 网络配置、协议 < 服务器实例 >中,用鼠标右键单击,然后选择属性。
- 在证书选项卡上从证书下拉菜单中,选择所需的证书,然后单击确定。
- 在标志选项卡上,在ForceEncryption框中,选择是,然后单击确定以关闭该对话框。
- 重新启动 SQL Server 服务。
在群集 SQL Server 安装启用 SSL 证书
在下面的注册表项中指定 SQL Server 用于加密连接的证书:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Certificate
此项包含一个属性的证书称为标识服务器中的每个证书的指纹。在群集环境中,此注册表项将被设置为 Null 的即使正确的证书存储中存在。要解决此问题,必须采取下列额外的步骤,在每个群集节点上于每个节点安装证书之后):
- 导航到存储该 FQDN 证书的证书存储区。在属性页上的证书,请转到详细信息选项卡和证书的指纹值复制到记事本窗口。
- 删除在记事本的指纹值中的十六进制字符间的空格。
- 启动注册表编辑器,定位到以下注册表项,和第 2 步中复制的值:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\< 实例 >\MSSQLServer\SuperSocketNetLib\Certificate
- 如果 SQL 虚拟服务器当前位于此节点故障转移到另一个群集上的节点,然后重新启动注册表更改的位置的节点出现。
- 重复此过程的所有节点上。
此过程中的屏幕快照,请参见以下博客文章在 MSDN 上:
为特定的客户端启用加密
客户端请求 SSL 加密的客户端计算机必须信任该服务器证书和证书必须已经存在于服务器上。您必须使用 mmc 管理单元导出受信任的根证书颁发机构使用的服务器证书:
- 若要导出服务器证书的受信任根证书颁发机构 (CA),请执行以下步骤:
- 打开 MMC,然后在个人文件夹中查找您的证书。
- 用鼠标右键单击证书名称,然后单击打开。
- 查看证书路径选项卡,请注意顶部的大多数项目。
- 导航到受信任的根证书颁发机构文件夹,然后找到说明该证书颁发机构在步骤 c 中...
- 用鼠标右键单击CA,指向所有任务,然后单击导出。
- 选择所有默认设置,然后将导出的文件保存到硬盘中,客户端计算机访问该文件的位置。
- 请按照以下步骤导入客户端计算机上的证书:
- 通过使用 MMC 管理单元中,定位到客户端计算机,然后浏览到受信任的根证书颁发机构文件夹。
- 用鼠标右键单击受信任的根证书颁发机构文件夹,指向所有任务,然后单击导入。
- 浏览,然后选择您在步骤 1 中生成的证书 (.cer 文件)。选择默认设置以完成向导的其余部分。
- 使用 SQL Server 客户端网络实用程序。
- 单击以选中强制协议加密选项。您的客户端现在就可以使用 SSL 加密。
如何测试您的客户端连接
若要测试您的客户端连接,您可以:
- 使用 SQL 管理工作室。
-或者-
- 使用的任何 ODBC 或 OLEDB 应用程序可以在其中更改连接字符串。
SQL Server 管理 Studio
若要使用 SQL Server 管理 Studio 进行测试,请执行以下步骤:
- 定位到 SQL Server 配置管理器中的 SQL Server 客户端< 版本 >配置页。
- 在属性窗口中,将设置强制协议加密选项为"是"。
- 连接到服务器正在运行 SQL Server 通过使用 SQL Server 管理 Studio。
- 通过使用 Microsoft 网络监视器或网络嗅探器监视通信。
ODBC 或 OLEDB 应用程序连接字符串示例
如果使用 ODBC 或 OLEDB 连接字符串,如 SQL 本机客户端提供程序中的,添加加密关键字并将其设置为true ,在连接字符串中,然后监视通信使用一种工具,如 Microsoft网络监视器或网络嗅探器
故障排除
您已成功安装证书之后,在证书选项卡上的证书列表中没有出现证书。
注意:证书选项卡处于打开 SQL Server 配置管理器协议实例 < 名称 >属性对话框。
因为您可能已安装证书无效,将出现此问题。如果证书是无效的它将不会在证书选项卡上列出。要确定您安装的证书是否有效,请执行以下步骤:
- 打开证书管理单元。若要执行此操作,请参阅"如何配置 mmc 管理单元"部分中的步骤 1。
- 在证书管理单元中,展开个人,然后展开证书。
- 在右窗格中,找到您所安装的证书。
- 确定证书是否满足以下要求:
- 在右窗格中,为该证书预期目的列中的值必须是服务器身份验证。
- 在右窗格中,颁发给列中的值必须是服务器的名称。
- 双击该证书,然后再确定证书是否满足以下要求:
- 在常规选项卡中,您将收到以下消息:
您有一个与该证书对应的私钥。
- 在详细信息选项卡上的主题字段的值必须是服务器名称。
- 增强型密钥用法字段的值必须是服务器身份验证 (< 数量 >)。
- 在证书路径选项卡上的服务器名称必须出现在证书路径下。
- 在常规选项卡中,您将收到以下消息:
如果不满足这些要求的任何一个,则该证书是无效的。
详细信息
(4.22)Microsoft 管理控制台启用 SSL 加密的 SQL Server 实例的更多相关文章
- 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
由于项目中必须得用JDK6来作为Java环境,于是连接SQLServer时出现了com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安 ...
- JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
要从旧算法列表中删除3DES: 在JDK 8及更早版本中,编辑该 /lib/security/java.security文件并3DES_EDE_CBC从jdk.tls.legacyAlgorithms ...
- 在Windows Server 2008 R2 Server中,连接其他服务器的数据库遇到“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker ”
项目代码和数据库部署在不同的Windows Server 2008 R2 Server中,错误日志显示如下: "未启用当前数据库的 SQL Server Service Broker,因此查 ...
- SQL问题:未启用当前数据库的 SQL Server Service Broker
数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...
- 下载 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 ...
- 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker
昨晚遇到的这个问题,也知道Notifications service依赖底层的Service broker的.本以为只需要执行以下脚本对数据库启用Service broker即可. alter dat ...
- 基于32位Windows2003的数据库服务器优化,启用AWE,优化SQL Server
最近几天,笔者所在的单位中的一台WEB服务器由于负载过大出现了问题,当同时在线的用户达到一定规模(2000-3000)时,频繁出现页面响应迟缓.超时等问题.服务器采用的操作系统是Windows Ser ...
- 解决“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker”错误
转自:http://blog.csdn.net/andrew_wx/article/details/6947317 解决办法: ALTER DATABASE 数据库名称 SET NEW_BROKER ...
- 错误:未启用当前数据库的SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker。
解决方法: 打开SQL Server,新建查询: ALTER DATABASE 数据库名 SET NEW_BROKER WITH ROLLBACK IMMEDIATE;ALTER DATABASE 数 ...
随机推荐
- 小程序渲染html的两种方法
一.使用文档自带的原生API rich-text, nodes属性直接绑定需要渲染的html内容即可,文档参见这里:https://developers.weixin.qq.com/miniprog ...
- 如何在Django1.8 结合Python3.4版本中使用MySql
Python2.7时代连接MySql的MySQLdb还不支持Python3.4. pip install pymysql 最关键的一点,在站点的__init__.py文件中,我们添加如下代码: 1 i ...
- Linux设备驱动剖析之IIC(二)
953行,适配器的编号大于MAX_ID_MASK是不行的,MAX_ID_MASK是一个宏,展开后的值为61. 957至968行,关于管理小整形ID数的,没怎么了解,略过. 974行,调用i2c_reg ...
- fs项目---->cron框架的学习(一)
Cron是一种允许您按计划执行某些内容的工具.这通常使用cron语法来完成.我们允许您在计划作业触发时执行函数.我们还允许您使用子进程执行javascript进程外部的作业.此外,这个库超出了基本的c ...
- Qt编写的开源帖子集合(懒人专用)
回顾自己学习Qt以来九年了,在这九年多时间里面,从本论坛学习不到不少的东西,今天特意整了一下自己开源过的资源的帖子,整理一起方便大家直接跳转下载,不统计不知道,一统计吓一跳,不知不觉开源了这么多代码, ...
- [原]Jenkins(十五)---jenkins插件之deploy
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...
- kubernetes-PetSet
什么是Pet?Pet是一个有状态应用程序,本质上它是一个具有确定性名称以及唯一身份的Pod,身份内容包括: DNS中可以识别的固定hostname 顺序化索引(Pet名称组成:PetSetName-O ...
- java封装实现Excel建表读写操作
对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Exce ...
- 使用介质设备安装 AIX 以通过 HMC 安装分区
使用介质设备安装 AIX 以通过 HMC 安装分区 原文:https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.h ...
- okvis源码解读
为相机图像提取brisk特征点,并设置描述子的提取方向为重力加速度在世界坐标系中的方向(0,0,1)