Sql server driver ошибка безопасности ssl

Обновлено: 16.05.2024

В логах:
Тип события: Ошибка
Источник события: DCOM
Категория события: Отсутствует
Код события: 10020

Пытаюсь приконнектиться из Enterprise Manager.

Connection failed:
SQLState: '01000'
[Microsoft][ODBC SQL Server Driver][TCP\IP Sockets]ConnectionOpen (SECCreateCredentials()).
Connection failed:
SQLState '08001'
SQL Server Error: 18
[Microsoft][ODBC SQL Server Driver][TCP\IP Sockets] SSL Security error

Ошибка и при проверки подлинности Windows, и через проверку учетки SQL сервера.
галка у "Обязательное шифрование протокола" на клиенте не стоит.
на сервере параметр "Приндительное шифрование" = нет.

Security=True;Trusted_Connection=True;",
то этой ошибки не возникает!

Как можно подключиться к SQL серверу через ODBC ?

Connection failed:
SQLState: '01000'
[Microsoft][ODBC SQL Server Driver][TCP\IP Sockets]ConnectionOpen (SECCreateCredentials()).
Connection failed:
SQLState '08001'
SQL Server Error: 18
[Microsoft][ODBC SQL Server Driver][TCP\IP Sockets] SSL

абсолютна такая же проблема, что делать?

имеется ввиду, что на МОЕЙ машине сервер не стоит.
коннекчусь к другой машине через открытый порт 3433

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

и я что-то не пойму, вы к словам придираетесь или помочь хотите?

в разных местах:
1. пытался законнектится через компонент ANYDac
2. пытался сделать тоже самое соединение через Администратора источников данных

ошибка одна и та же, ругаются на SSL шифрование, которого и в помине не стоит ни у меня, ни у сервера

если захожу в Манаджмент Студию, то в ней коннект проходит без проблем

давайте так сделаем, "они-то посмотрели", но может не то и не там.
вы из студии попадаете на сервер?
выполните

давайте так сделаем, "они-то посмотрели", но может не то и не там.
вы из студии попадаете на сервер?
выполните

Эта статья поможет вам решить проблему, которая возникает при попытке сделать зашифрованное подключение к SQL Server.

Оригинальная версия продукта: SQL Server
Исходный номер КБ: 2007728

Причина

Эта ошибка возникает при попытке сделать зашифрованное подключение SQL Server с помощью не поддаемого проверке сертификата. Это может произойти в следующих сценариях:

Сценарий Шифрование на стороне сервера Шифрование на стороне клиента Тип сертификата Полномочия по выдаче сертификатов, присутствующие в хранилище Доверенные корневые органы сертификации
1 Да Нет Вы выдаёте сертификат из не доверенного источника (орган по выдаче сертификатов не указан в качестве доверенного органа в доверенных корневых органах сертификации на клиентской машине) Нет
2 Выкл. Да SQL Server самогенерирован сертификат Самозаверяемые сертификаты не показываются в этом магазине.

Симптомы

[Microsoft][ODBC SQL Server Driver][DBNETLIB]SSL Security error

101673-ssl-security-error.jpg

Hi Leads,
When we connect ODBC connection error on windows server2012 R2.
Please find the attached file which is having error. Kindly help on this resolve this issue.

OS: Windows Server 2012 R2
SQL version: SQL Server 2012
ODBC version: 12.64.00.00

Hi @SelvamPrabhakarPanner-3711, we have not get a reply from you. Did any answers could help you? If there have any answers helped you, please do "Accept Answer". If not, please let us know. By doing so, it will benefit for community members who have this similar issue. Your contribution is highly appreciated. Thank you!

2 Answers

What does "SELECT @@version" report?

The most likely this is a TLS issue where one component uses TLS 1.0 and the other wants TLS 1.2. I don't know the ODBC version numbers by heart, but you can always download and install the most recent ODBC driver which is ODBC 17. Don't forget to change the connection string.

Welcome to Microsoft Q&A!

101953-1.jpg

Are you use TLS 1.0 or TLS 1.2? And please check Erland mentioned SELECT @@version . If you use TLS 1.2, not every SQL Server release is supposted TLS 1.2, please refter to KB3135244 - TLS 1.2 support for Microsoft SQL Server:

If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

Особенность всех клиентов: установлен КриптоПро 3.6.7092, ViPNet CSP 3.2.
Особенность этого клиента: Win7 SP1 (клиенты работающие без ошибок - WinXP)

Собственно ODBD DSN:

Что пробовали:
Делать ODBD DSN через [SQL Server Native Client 10.0], получили похожее:

Пробовали конектится с этой машины на другие sql-сервера в сети - та же ошибка SECEncryptData

Ничего не помогло - ошибка стабильно та же.

ФирмА Гендальф знает ответ:

да, забыл сказать, есть касперский 10 энтерпрайз, впрочем как и на всех прочих клиентах.

Решение

Если для шифрования подключений в SQL Server используется сертификат из не доверенного органа или самозаверяется сертификат, можно использовать один из следующих вариантов:

Для сценария 1. Добавьте полномочия сертификата в хранилище доверенных корневых органов сертификации на клиентном компьютере, инициационав зашифрованное подключение. Для этого выполните экспорт сертификата сервера и установите корневой орган сертификата (CA) на процедуры клиентской машины, указанные ниже в этой последовательности.

Экспорт сертификата сервера.

В примере в качестве файла сертификата используется файл с именем caCert.cer. Этот файл сертификата необходимо получить на сервере. Следующие действия объясняют, как экспортировать сертификат сервера в файл:

В MMC откройте сертификаты.

Расширение персональных и затем сертификатов.

Щелкните правой кнопкой мыши сертификат сервера, а затем выберите Все задачи\Экспорт.

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

Убедитесь, что либо DER закодирован двоичный X.509 (. CER) или Base-64, закодированные X.509 (. CER) выбирается, а затем нажмите кнопку Далее.

Введите имя экспортного файла.

Установка органа корневого сертификата (CA) на клиентской машине

Запустите оснастку сертификатов для MMC на клиентский компьютер и добавьте оснастку Сертификаты.

В диалоговом окне "Сертификаты" выберите учетную запись Компьютера и выберите Далее.

В области Выбор компьютера выберите локальный компьютер: (на компьютере эта консоль запущена), а затем выберите Finish.

Выберите ОК, чтобы закрыть диалоговое окно Add или Remove Snap-ins.

В левой области MMC расширь узел Сертификаты (Локальный компьютер).

Развяжите узел Доверенные корневые органы сертификации, щелкните правой кнопкой мыши подмостки Сертификаты, выберите все задачи, а затем выберите Импорт.

В мастере импорта сертификатов на странице Welcome выберите Далее.

На странице Импорт файлов выберите Просмотр.

Просмотрите расположение файла сертификата caCert.cer, выберите файл и выберите Открыть.

На странице Файл импортировать выберите Далее.

На странице Хранилище сертификатов примите выбор по умолчанию и выберите Далее.

На странице Завершение мастера импорта сертификатов выберите Finish.

Для сценариев 1 и 2. Установите параметр сертификата trust Server до true в клиентских приложениях.

Дополнительные сведения о том, как это сделать, просмотрите следующие разделы:

Использование шифрования без проверки в SQL Server Native Client.

Подключение с шифрованием с помощью драйвера Microsoft JDBC для SQL Server.

Использование шифрования с помощью Sqlclient.

Если вы используете SQL Server Management Studio, вы можете нажать на вкладку Параметры и проверить параметр сертификата доверяемого сервера в вкладке Свойства подключения.

Внимание: Соединения SSL, зашифрованные с помощью самозаверяемого сертификата, не обеспечивают сильной безопасности. Они подвержены man-in-the-middle атакам. Не следует полагаться на SSL с помощью самозаверяемого сертификата в производственной среде или на серверах, подключенных к Интернету.

Если конфигурация, обсуждаемая в предыдущих разделах этой статьи, непреднамеренна, для решения этой проблемы можно использовать один из следующих вариантов:

Настройка двигателя базы данных для использования шифрования в рамках процедуры Включить зашифрованные подключения к ядро СУБД

Если шифрование не требуется:

Отключение параметров шифрования (если таково) в клиентских приложениях.

Отключить шифрование на стороне сервера с помощью SQL Server диспетчера конфигурации. Дополнительные сведения о том, как это сделать, просмотрите Configure Server.

Читайте также: