Mssql-django - TCP Provider: Код ошибки 0x2746 (10054) (SQLDriverConnect)

Имею докеризованное приложение Django 4, работающее на хосте Docker (Debian10), подключающееся к сетевому SQL Server 2012 (работающему на Windows10) в среде разработки.

Не удается заставить тот же образ docker подключиться к SQL Server 2014 (работающему на виртуальной машине Server2012) в среде staging. В журналах событий SQL Server видно, что подключение к БД успешно:

Login succeeded for user '<USERNAME>'. Connection made using SQL Server authentication. [CLIENT: <DB_SERVER_IP>]

Однако, Django выдает ошибку со следующим Stack Trace:

alluradjango-web-1  |     self.connect()
alluradjango-web-1  |   File "/home/djangouser/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
alluradjango-web-1  |     return func(*args, **kwargs)
alluradjango-web-1  |   File "/home/djangouser/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect
alluradjango-web-1  |     self.connection = self.get_new_connection(conn_params)
alluradjango-web-1  |   File "/home/djangouser/.local/lib/python3.9/site-packages/mssql/base.py", line 329, in get_new_connection
alluradjango-web-1  |     conn = Database.connect(connstr,
alluradjango-web-1  | django.db.utils.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746 (10054) (SQLDriverConnect)')

requirements.txt:

asgiref==3.5.0
backports.zoneinfo==0.2.1
Django==4.0.3
django-allow-cidr==0.4.0
django-environ
djangorestframework==3.13.1
mssql-django==1.1.2
netaddr==0.8.0
pyodbc==4.0.32
pytz==2021.3
sqlparse==0.4.2
black==22.1.0
pylint==2.12.2
pylint-django==2.5.2
python-decouple==3.6
pre-commit==2.17.0
djangouser@2062b37a0a3a:~$ odbcinst -j
unixODBC 2.3.6
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/djangouser/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

/etc/odbc.ini пуст

djangouser@2062b37a0a3a:~$ cat /etc/odbcinst.ini
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.9.so.1.1
UsageCount=1

Брандмауэр на хостовой ОС SQL Server выключен. nmap показывает, что порт открыт. И, как указано выше, в логах ОС хоста SQL Server можно увидеть успех соединения.

Однако, вышеуказанная ошибка сохраняется. Любая помощь будет признательна, я застрял на 9 дней.

SOLVED: понижение версии OpenSSL

Добавление этого в мой Dockerfile позволило установить соединение (все еще не уверен, почему оно зашифровано):

#Downgrade OpenSSL RUN curl openssl.org/source/openssl-1.1.1l.tar.gz -O \ && tar -zxvf openssl-1.1.1l.tar.gz && cd openssl-1.1.1l \ && ./config \ && make \ && make install \ && ldconfig \ && cd .. 
Вернуться на верх