Использование 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 изменится и может не совпадать с тем, который у вас есть.
Я читал это недавно, но я все еще пытаюсь найти ссылку для вас.
Я бы посоветовал вам убедиться, что сервер, к которому вы подключаетесь, явно установил сертификат и что у вашего клиента тоже есть.
Я обновлю это, как только найду ссылку.