ITPub博客

首页 > 数据库 > SQL Server > 为SQL Server配置连接加密

为SQL Server配置连接加密

原创 SQL Server 作者:z_cloud_for_SQL 时间:2023-02-17 13:18:05 0 删除 编辑
前言

很多客户在对数据库做安全审计时要求配置连接加密,本文就如何配置加密以及使用证书做一个系统的整理。

连接加密 1

首先,连接加密不是透明数据加密,很多人经常把两个概念混淆。连接加密是指客户端程序和SQL Server通信时的加密,保护数据在传输过程中的安全。

连接加密是SQL Server的TDS协议和TLS协议结合完成的,是在客户端驱动程序(ADO.NET、JDBC、OLEDB等)和SQL Server服务端实现的,对于上层的应用程序是透明的。

服务器端配置 2

打开SQL Server配置管理器,在SQL Server网络配置节点下,选择要启用加密连接的实例,右键,选择“属性”,在弹出的窗口中配置强行加密。确定后,重启SQL Server服务。

通过 视图sys.dm_exec_connections的encrypt_option属性可以看到所有的连接都已经加密了。

说明:如果是SQL Server故障转移群集或者AlwaysOn,每个节点都需要配置。


客户端配置 3

在 服务器 端 启动 强制加密 是最简单的方法 ,如果 前端应用程序使用 非常老的 数据库驱动程序, 不支持TLS协议,无法正常连接数据库,例如 低版本的 PB 、 DELPHI 等。另外,基于网络抓包分析的审计软件也无法工作。在这种情况下,可以在客户端进行有选择性地配置。

通过在数据库连接字符串中增加Encrypt和TrustServerCertificate两个关键词来实现。

ADO.NET

JDBC

SQL Server Management Studio


老版本 SQL Server Management Studio


配置证书 4

无论是在服务端还是客户端配置连接加密,都需要使用证书。默认情况下, SQL Server会生成 自签名证书,在ERROR_LOG中可以看到一条“ 已成功加载自行生成的证书以进行加密”的日志 。


大多数情况下,使用自签名证书就足够了。如果想使用CA机构颁发的第三方证书,可按照以下步骤配置。

运行 m mc 打开控制台,添加证书管理。

在“个人”节点下按照向导导入证书。

注意 : 导入证 书的使 用者属 性必须 与 服务器的完全限定域名 (FQDN) 一致。如果是SQL Server 故障转移群集,要和 虚拟服务器的FQDN一致。

为SQL Server启动账号配置权限。 在SQ L Server配置管理器中查看启动账号。


在SQL Server配置管理器中,选择证书并重启SQL Server服务。 注意: SQL Server 配置管理器中只能显示与服务器FQDN一致的证书,所以显示不出为SQL Server 故障转移群集虚拟服务器名称创建的证书。需要通过修改注册表的方式配置,具体步骤见“SQL Server 故障转移群集下配置证书”。

通过ERROR_LOG可以看到SQL Server使用的证书。


SQL Server 故障转移群集下配置证书 5

首先按照上面的步骤在所有节点导入证书,然后复制 出证书的指纹。

在所有的节点中打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Microsoft SQL Server\MSSQL.1\MSSQLServer\SuperSocketNetLib\Certificate项(注意替换成实际的版本和实例名),填写复制的指纹数据,在填写时去掉数据中的空 格。

最后,依次切换每个节点,验证SQL Server服务能否正常启动,并验证前端应用是否能正常连接。

北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台金牌合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70023658/viewspace-2935727/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
数据库技术运营,多年IT行业从业经验。

注册时间:2022-11-02

  • 博文量
    55
  • 访问量
    61931