配置sql server连接加密
背景
基于安全的要求,需要开启SQL Server连接加密
声明
生产环境请使用认证机构提供的证书,以确保安全。
配置步骤
使用SQL Server默认证书方式
1. 打开Sql Server Configuration Manager
2. 选择需要开启加密的SQL Server实例
3. 按右键,打开属性
修改Fore Encryption为Yes,此时SQL Server会生成默认的证书。
4. 重启SQL Server服务
5. 通过SQL Server Management Studio连接开启了加密的SQL Server实例
a) 不使用加密的方式连接
b) 使用加密的方式连接
注:支持上面两种方式连接,但不支持下面的方式进行连接方式,即只使用加密不信任服务端的证书。
使用第三方证书方式
这里采用自建证书进行测试验证,使用New-SelfSignedCertificate命令。
命令如下:
New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -FriendlyName testca -KeyLocation E:\cert -KeyProtection Protect -KeyUsageProperty All -Provider "Microsoft RSA Schannel Cryptographic Provider" -Subject CN=机器全名 -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1") -Type SSLServerAuthentication
:建立了一个名称为testca,存放在证书中当前机器节点下,算法提供者为Microsoft RSA Schannel Cryptographic Provider,Enhanced Key Usage 属性要设置为 Server Authentication (1.3.6.1.5.5.7.3.1),私钥存储在e:\cert的证书
1. 生成证书
打开PowerShell,将上面命令中的机器全名换为实际的机器名称。如:机器名称是computer,域为abc.com,那么全名为computer.abc.com。这里如果写错了,将无法找到证书。命令执行结果如下,表示成功生成证书
2. 命令行下执行MMC,然后在文件菜单下,选择添加/删除管理单元,选择证书,选择计算账户,点下一步后,点击完成。
点击完成后,结果如下图
3. 点开个人/证书,就可以看到引入的证书
4. 选择证书,右键点开属性,做下面的修改
5. 将证书导出
选择导出私钥
以及扩展属性
设置密码
选择输出路径和文件名
6. 将原始证书删除,选择引入证书
选择刚才引出的证书exportca1.pfx
输入引出时设置的密码
放在个人证书下即可
到此完成了证书的引入(这里主要是增加了私钥的密码,因为SQL Server要求证书有私钥)
7. Sql Server Configuration Manager中检查启动SQL Server服务器的账户,这里为Local Service用户
8. 在证书中,选择证书,按右键,选择所有任务/管理私钥,将启用SQL Server的用户增加进来
添加后结果如下
9. Sql Server Configuration Manager中,做下面的设置
a) 设置加密为Yes
b) 选择证书
c) 重启SQL Server服务
至此就完成了第三方证书的引入。
注:如果测试用途,也可以通过IIS来生成证书。
基于金蝶云星空产品相关调整
如果需要增加加密的支持,需要在连接串中增加Encrypt=true;TrustServerCertificate=true
方法:
在管理站点下面目录下,找到sqlserverconnectionstringpattern后面,增加上面的内容。
附
证书引入成功后会写到注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Certificate下
如下
该值来自证书中的Thumbprint,区别为去掉了所有空格
如果引入的证书无效后,引入证书有问题,需要检查该值是否不为空,如果不为空,先将该值删除。在测试过程中,存在注册表中无效证书Certificate不能删除,导致SQL Server实例无法启动问题。
参考
如果配置过程中有问题,参考链接2
2. https://docs.microsoft.com/en-us/archive/blogs/apgcdsd/sql-servertroubleshooting
3. https://docs.microsoft.com/zh-cn/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps
4. https://www.sqlshack.com/how-to-set-and-use-encrypted-sql-server-connections/
配置sql server连接加密
本文2024-09-23 01:17:52发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-145032.html