![]() |
1
28
在评论中沟通之后,我可以认为你的主要问题是 中国 您使用的证书的一部分。要使IIS Server的TLS通信成功,就没有像SQL Server那样的严格限制。
Microsoft要求(请参阅
here
)那个
证书的名称必须是计算机的完全限定域名(FQDN)。
这意味着
主题
证书的一部分看起来像
CN=test.windows-server-test.example.com
哪里
test.windows-server-test.example.com
是计算机的FQDN。举例来说,这是不够的
CN=*.example.com
和
主题备选名称
,其中包含
我建议您创建CN等于SQL Server FQDN的自签名证书,并验证SQL Server配置管理器将看到该证书。
已更新
:我进一步分析了有关Process Monitor的问题,发现注册表中的两个值对SQL Server Configuration Manager很重要:
如果我改变
更新2: 我再次详细检查了这个问题,我认为我找到了如何配置您已经拥有的通用SSL证书的方法(例如,从 Let's Encrypt , StartSSL 或一些其它)。 区分做什么很重要 SQL Server配置管理器 SQL Server所需的配置。Configuration Manager属性的“证书”选项卡具有 更严格的限制 作为SQL Server。我在上面只描述了SQLServer配置管理器的限制,但可以直接在注册表中进行配置,以便SQLServer使用更常见的SSL/TLS证书。我在下面描述如何做到这一点。
一个人需要做的事情可以在注册表项下进行,如
这个
或证书的扩展属性,您可以通过用法查看这些属性
只需复制“Cert Hash(sha1)”值,删除所有空格并将其作为
|
|
2
5
我想为未来可能遇到类似问题的人添加此内容,我在SQL 2016 SP2和故障转移群集中遇到了类似问题。添加到注册表中的证书指纹必须全部为大写。 希望这能帮助下一个人。 |
![]() |
3
2
一旦我按照已接受答案的更新2部分中的步骤操作,我就无法启动SQL Server服务,在事件查看器中出现了这些错误:
SQL Server错误日志中出现错误:
在谷歌上搜索并发现 a solution :
确保windows帐户运行SQL Server服务(
我查了1号
我查了2号,
我没有检查3号,并尝试启动SQL Server,它成功了!! |
|
4
1
我在SSRS中遇到了类似的问题,其中微软active directory CA颁发的证书在SSRS的下拉列表中不可见。经过多次搜索、反复尝试,我可以通过以下链接修复它。 简介如下: 这个 主题 属性必须指示公用名(CN)与主机名或 完全限定域名(FQDN) 服务器计算机的。 因此,在我们的案例中,我们建议请求证书颁发机构将Subject名称更改为ABC-SQLServer.ABC。本地(SQL Server的FQDN)而不是abc-corp.abc.com 完成此更改后,我们再次在MMC中加载证书,现在可以看到在SQL Server配置管理器中加载的证书! 希望它能帮助面临同样问题的人! |
|
5
1
即使遵循了上述步骤,我仍然有问题。这是我的解决方案: 在证书mmc中右键单击证书“所有任务”->管理Pricate密钥。让服务帐户完全控制。在我的情况下,我使用的是NT Service\MSSQL$ |
|
6
0
我使用SQL server域帐户登录到服务器(必须将该帐户临时添加到本地管理员),并将证书导入到SQL server服务帐户的个人文件夹中。重新启动服务器,然后SQLServer可以看到证书。希望它能帮助某人。 |
|
7
0
另一种失败模式是密钥长度-SQL要求最小密钥长度为2048。禁用DH信道。 |
![]() |
8
0
我还遇到了一个从MMC复制的问题,这在本文中有详细介绍 here 。使用certutil并将其复制到注册表值中效果很好。 |
![]() |
9
0
|
|
10
-1
注册表编辑器中的证书使用大写LOL 配置管理器中仍未显示,但TLS适用于SQL连接。 |
![]() |
Raja · 在ESP8266上启用TLS时,WiFi管理器崩溃 1 年前 |