Ошибка "Цепочка сертификатов была выдана центром, который не является доверенным" после обновления приложений SNAC
Поддержка собственного клиента SQL Server 11.0 (SNAC) в качестве драйвера для приложений базы данных закончилась 12 июля 2022 г. Все приложения, использующие SNAC 11.0, должны быть обновлены для использования более новых версий драйверов (см. раздел "Скачать драйвер ODBC для SQL Server" и скачать драйвер Microsoft OLE DB для SQL Server). В этой статье описывается проблема, возникающая при обновлении приложения SNAC 11.0, чтобы использовать Microsoft OLE DB Driver 19 для SQL Server или Microsoft ODBC Driver 18.x для SQL Server.
- Обновлено до Microsoft OLE DB Driver 19 для SQL Server
- Обновлено до Microsoft ODBC Driver 18.x для SQL Server
Если вы недавно обновили приложение SQL Server Native Client 11.0 (Provider=SQLNCLI11) для использования Microsoft OLE DB Driver 19 для SQL Server (Provider=MSOLEDBSQL19), могут появиться сообщения об ошибках, похожие на следующие сообщения:
[Microsoft OLE DB Driver 19 for SQL Server]: клиент не может установить подключение
[Microsoft OLE DB Driver 19 for SQL Server]: поставщик SSL: цепочка сертификатов была выдана центром, который не является доверенным.
Причина
Эти ошибки возникают, если оба следующих условия являются истинными:
Параметр принудительного шифрования для экземпляра SQL Server имеет значение No.
Клиент строка подключения не указывает явное значение для свойства шифрования, или параметр шифрования не был явно задан или обновлен в dsN.
Ошибка возникает из-за изменения поведения драйверов клиента по умолчанию. Старые версии клиентских драйверов предназначены для того, чтобы предположить, что шифрование данных по умолчанию — OFF . Новые драйверы предполагают, что этот параметр будет включен по умолчанию. Так как для шифрования данных задано значение ON, драйвер пытается проверить сертификат сервера и завершится сбоем.
Решения
Решение 1. Использование драйвера Microsoft OLE DB для SQL Server 18.x. Драйвер можно скачать из заметок о выпуске для драйвера Microsoft OLE DB для SQL Server.
Решение 2. Если свойство приложения строка подключения уже указывает значение "Да" или "Обязательно" для параметра "Шифрование и использование шифрования для данных", измените значение на "Нет" или "Необязательно". Например, Использовать шифрование для данных=Необязательно. Если строка подключения не указывает никакого значения для шифрования и использования шифрования данных, добавьте шифрование для данных=Необязательно в строка подключения. Дополнительные сведения см. в разделе Шифрование и проверка сертификатов.
Решение 3. Добавьте
;TrustServerCertificate=true
в строка подключения. Это приведет к принудительному доверию клиента сертификату без проверки.-
Примечание.
В настоящее время MSOLEDBSQL19 предотвращает создание связанных серверов без шифрования и доверенного сертификата (самозаверяющий сертификат недостаточно). Если необходимы связанные серверы, используйте существующую поддерживаемую версию MSOLEDBSQL.