gpt4 book ai didi

sql-server - SQL Server 配置管理器中的下拉列表中缺少 SSL 证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:20 32 4
gpt4 key购买 nike

我正在尝试配置 SQL Server 2014,以便我可以使用 SSL 远程连接到它。服务器上安装了有效的通配符证书,并且证书的域名 (example.com) 与服务器的 FQDN (test.windows-server-test.example.com) 匹配。

问题是在 SQL Server 配置管理器中,没有列出证书,所以我无法选择它。

blank dropdown

也就是说,我卡在了 this MS tutorial 的步骤 2.e.2 上.

最佳答案

在评论中沟通后,我可以假设您的主要问题是您使用的证书的 CN 部分。要为 IIS 服务器成功进行 TLS 通信,没有像 SQL Server 那样的严格限制。

Microsoft 要求(参见 here)证书的名称必须是计算机的完全限定域名 (FQDN)。这意味着主题证书的一部分看起来像 CN = test.widows-server-test.example.com,其中 test.widows-server-test.example.com 是 FQDN你的电脑。您使用例如 CN = *.example.comSubject Alternative Name 是不够的,其中包含 DNS Name=*.example.comDNS 名称=test.widows-server-test.example.comDNS 名称=test1.widows-server-test.example.comDNS Name=test.widows-server-test2.example.com 等等。这样的证书对于 TLS 是可以的,但是 SQL Server 会丢弃它。参见 the article ,它描述了紧密的问题。

我建议您创建 CN 等于 SQL Server 的 FQDN 的自签名证书,并验证 SQL Server 配置管理器是否可以看到该证书。

已更新:我对进程监视器的问题进行了更多分析,发现注册表中的两个值对 SQL Server 配置管理器很重要:值 Hostname和 key 下的 Domain

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

如果我将 DomainHostname 更改为与证书的 CN 对应的值,则该证书将已显示在 SQL Server 配置管理器中。这可能不是所有问题,但它表明 SQL Server 作为 Web 服务器(例如 IIS)需要更多。

更新 2: 我再次详细检查了这个问题,我想我确实找到了如何配置您已经拥有的通用 SSL 证书的方法(例如从 Let's Encrypt 认证的免费 SSL) 、StartSSL 或其他)。

区分SQL Server 配置管理器 和SQL Server 所需的配置很重要。 Configuration Manager 属性的“证书”选项卡与 SQL Server 相比有更多硬性限制。上面我只描述了SQL Server Configuration Manager的限制,但是可以直接在Registry中进行配置,让SQL Server使用更常见的SSL/TLS Certificate。我在下面描述了如何做到这一点。

需要做的可以在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.SQL2014\MSSQLServer\SuperSocketNetLib键下,其中MSSQL12. SQL2014 在您的情况下可能会有所不同。 SQL Server 配置管理器帮助我们在注册表中设置两个值:ForceEncryptionCertificate:

enter image description here

Certificate 值是 SHA1 哈希,可以通过检查证书的属性找到:

enter image description here

或证书的扩展属性,您可以通过使用 certutil.exe -store My 看到:

enter image description here

只需复制“Cert Hash(sha1)”值,删除所有空格并将其作为 Certificate 的值放入注册表中。进行设置并重新启动 SQL Server windows 服务后,将在 C:\Program Files\Microsoft SQL Server\...\MSSQL\Log 目录中的文件 ERRORLOG 中看到像一行

2016-04-25 21:44:25.89 Server The certificate [Cert Hash(sha1) "C261A7C38759A5AD96AC258B62A308A26DB525AA"] was successfully loaded for encryption.

关于sql-server - SQL Server 配置管理器中的下拉列表中缺少 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36817627/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com