Как исправить драйвер Microsoft ODBC 17 для SQL Server: поставщик SSL ssl_choose_client_version: неподдерживаемый протокол

Я установил Sql Server 2019 Developer Edition и mssql-tools на моем минимальном Ubuntu 20.04. Я могу подключиться к своему локальному хосту без проблем, но когда я хочу удаленно подключиться к другому серверу sql:

sqlcmd -S <server> -U <username> -P <password>

Я сталкиваюсь с этой ошибкой:

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSL Provider: [error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol].
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.

У меня есть эта проблема один раз в Debian 10, и я также ищу решение в сети, поэтому после этого я вручную меняю свой openssl.conf (требуется разрешение su):

nano /etc/ssl/openssl.cnf

и добавляю их в свой файл:

  • ess_cert_id_alg = sha1 под [tsa_config1] заголовок

  • openssl_conf = default_conf вверху

  • следующий в конце:

    [default_conf]

    ssl_conf = ssl_sect

    [ssl_sect]

    system_default = system_default_sect

    [system_default_sect]

    MinProtocol = TLSv1.0

    CipherString = DEFAULT @ SECLEVEL = 1

Я знаю, что MinProtocol и CipherString обычно имеют значение TLSv1.2 и DEFAULT @ SECLEVEL = 2 , но, как я однажды упоминал в моем Debian 10, я отредактировал свой openssl.conf и изменил TLSv1.2 на TLSv1.0 и DEFAULT @ SECLEVEL = 2 до DEFAULT @ SECLEVEL = 1 и мое соединение исправлено, но в Ubuntu 20.04 минимальный не только не было этих строк, но и когда я снова вставлял их вручную, я сталкивался с той же ошибкой:

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : SSL Provider: [error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol].
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.

моя версия opnessl:

OpenSSL 1.1.1f  31 Mar 2020

Я также однажды понизил свой openssl до 1.0, но это не сработало либо!

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

0
задан 18 October 2020 в 00:50

1 ответ

Причина может заключаться в том, что ваш текущий openssl не поддерживает/отключил некоторые шифры (поддерживаемые вашей предыдущей установкой) и они требуются серверу. Просто сравните результат:

nmap --script ssl-enum-ciphers localhost
nmap --script ssl-enum-ciphers <DB SERVER IP>

Решение: попробуйте установить новую версию openssl (> 1.1.1f) вручную. Я обновился с 1.1.1f до 1.1.1h, и это решило мои проблемы, дополнительная настройка не требуется. Я также читал подобные случаи с 18.04 -> 20.04 и 1.1.1f, которые затронули других парней.

Ручная установка выглядит следующим образом:

wget https://www.openssl.org/source/latest.tar.gz -O openssl-1.1.1h.tar.gz
tar -zxvf openssl-1.1.1h.tar.gz
cd openssl-1.1.1h
./config
make
sudo make install
openssl version
sudo ldconfig

Надеюсь, это поможет

Обратите внимание, если после загрузки и распаковки tar директория выглядит примерно так: openssl-3.0.0, тогда измените ее на эту вместо этого выполните описанные выше шаги, но если версия openssl завершается ошибкой

error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

, вам нужно скопировать еще несколько файлов:

sudo cp /usr/local/lib64/libcrypto.so.3 /usr/lib
sudo cp /usr/local/lib64/libssl.so.3 /usr/lib
sudo cp /usr/local/lib64/libssl.so /usr/lib
8
ответ дан 5 November 2020 в 16:58

Другие вопросы по тегам:

Похожие вопросы: