在Sql Server连接字符串中使用Encrypt = yes – >“provider:SSL Provider,error:0 – 证书的CN名称与传递的值不匹配。”

我在SQL Server连接字符串中使用Encrypt=yes ,因为我需要加密TCPIP流量,但在打开连接时出现错误:

 A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - The certificate's CN name does not match the passed value.) 

有任何建议如何解决这个问题? 我假设我的服务器之间需要某种证书关系,但不知道从哪里开始。

我需要两个连接,一个连接到SQL 2000服务器,一个连接到2005服务器。

您的数据库连接可以配置为加密流量并接受来自服务器的任何证书 。 不是一个伟大的解决方案,但它对我有用。

生成的连接字符串应如下所示:

 "[...];Encrypt=True;TrustServerCertificate=True" 

我意识到这已经很老了,但是认为这可能仍然对某人有所帮助。

如果要连接的服务器未安装证书,则每次重新启动服务器时都会生成默认证书编号。 发生这种情况时,CN编号会发生变化,可能与您的编号不一致。

我最近读过这篇文章,但我仍在努力为你找到这个链接。 我建议你确保你连接的服务器已经明确安装了证书,并且你的客户端也有。

我会在找到链接后立即更新。