Использование Encrypt = yes в строке подключения сервера Sql → "поставщик: поставщик SSL, ошибка: 0 - имя CN сертификата не соответствует переданному значению."

Я использую Encrypt=yes в строке подключения SQL Server, так как мне нужно, чтобы трафик 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 CN name does not match the passed value.)

Любые предложения, как это исправить? Я предполагаю, что мне нужны какие-то отношения сертификатов между моими серверами, но не знаю, с чего начать.

Мне нужно это для двух соединений, по одному на сервер SQL 2000 и один на сервер 2005 года.

Ответ 1

Соединение с базой данных можно настроить на шифровать трафик и принять любой сертификат с вашего сервера. Не большое решение, но это сработало для меня.

Полученная строка подключения должна выглядеть так:

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

Ответ 2

Я понимаю, что это довольно старый, но думал, что это может помочь кому-то.

Если сервер, к которому вы подключаетесь, не имеет установленного сертификата, при каждом перезапуске сервера генерируется номер сертификата по умолчанию. Когда это произойдет, номер CN изменится и может не совпадать с тем, который у вас есть.

Я читал это недавно, но я все еще пытаюсь найти ссылку для вас. Я бы посоветовал вам убедиться, что сервер, к которому вы подключаетесь, явно установил сертификат и что у вашего клиента тоже есть.

Я обновлю это, как только найду ссылку.