自上周以来,我有一些机器总是尝试加密与 SQL Server 的连接。 这将导致某些客户端失败,因为所有 SQL Server 都在使用默认的“后备”证书,我们没有 CA 证书,因此 Invoke-SqlCmd 会返回一个错误,指出“证书链是由不是一个权威机构 受信任”(除非我添加 -TrustServerCertificate 开关)。这是一个问题,因为我们有许多不同的连接,并且某些提供商不允许您指定不加密的信任服务器证书。
由于这个原因,发生这种情况的机器无法连接到任何 SQL Server,而我们还有其他机器可以连接到所有 SQL Server,因此这表明这是客户端问题,而不是 SQL Server 的问题。
我可以在 Wireshark 跟踪中看到,工作客户端的“tds.prelogin.option.encryption”值设置为 0,非工作客户端设置为 1,因此某些原因导致这些客户端始终要求加密。
在这种情况开始发生时,我还没有发现应用了任何补丁,也不知道有任何安全策略更改(尽管我有兴趣知道什么配置可能会导致这种情况,以便我可以验证)
请使用-否将加密选项设置为可选。 参考:使用sqlcmd连接。
如果连接不成功,可以在sqlcmd中添加-No选项来指定加密是可选的,而不是强制的。