如何在Windows Server 2012 R2域控上为SQL Server 2014 Express启用TLS1.1及TLS1.2?
在Windows Server 2012 R2 DC上同时启用TLS 1.1和TLS 1.2的正确配置
我来帮你一步步完成这个配置——你已经通过注册表禁用了其他不安全的协议,现在只需要确保TLS 1.1和TLS 1.2的服务器端、客户端都正确启用即可,具体步骤如下:
1. 打开注册表编辑器
首先运行regedit.exe(可以通过开始菜单搜索或Win+R输入打开),导航到核心配置路径:
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
2. 配置TLS 1.1的启用参数
如果Protocols下还没有TLS 1.1项,右键Protocols选择「新建 > 项」,命名为TLS 1.1。接下来在TLS 1.1下创建两个子项:Server和Client,分别配置服务器端和客户端的TLS 1.1支持:
针对Server子项:
- 右键
Server,选择「新建 > DWORD(32位)值」,命名为Enabled,设置值为0x00000001(十进制1) - 再新建一个DWORD值,命名为
DisabledByDefault,设置值为0x00000000(十进制0)
针对Client子项:
- 重复上述操作,新建
Enabled值为1,DisabledByDefault值为0
3. 确认TLS 1.2的配置(关键检查)
因为你之前已经启用了TLS 1.2,需要确保它的配置没有被误改:
- 找到
Protocols下的TLS 1.2项,检查Server和Client子键:Enabled值为1,DisabledByDefault值为0
- 如果有缺失,按照TLS 1.1的配置方式补全即可
4. 生效与验证
- 必须重启服务器:SCHANNEL的协议配置属于系统级设置,只有重启后才能完全生效
- 重启后,可以用PowerShell命令验证配置是否正确:
输出结果中,TLS 1.1和TLS 1.2的Get-TlsProtocol | Where-Object {$_.Name -match 'TLS1[12]'}Enabled列应该显示为True
额外注意事项
- 作为域控制器,重启前请确认没有正在运行的关键业务,提前做好维护通知
- 对于同域内的Java应用,确保其JVM版本支持TLS 1.1(Java 7及以上默认支持,部分极旧版本可能需要在启动参数中手动指定启用)
内容的提问来源于stack exchange,提问作者Bemipefe




