Linux

使用任何客戶端的 Linux Mint + SQL Server 2008 R2 的 SQL Server 連接失敗

  • August 2, 2020

我正在嘗試使用 SP4 數據庫連接到我的 SQL Server 2008 R2,但是,我收到了這個錯誤,我嘗試了一些在這裡找到的解決方案,但沒有一個對我有用。

PS。我不知道如何理解這個錯誤,但我確定這是關於 SSL+LINUX

Microsoft.Data.SqlClient.SqlException (0x80131904):與伺服器成功建立連接,但在登錄前握手期間發生錯誤。(提供者:TCP 提供者,錯誤:35 - 擷取到內部異常)

System.Security.Authentication.AuthenticationException:身份驗證失敗,請參閱內部異常。

Interop+OpenSsl+SslException:SSL 握手失敗,出現 OpenSSL 錯誤 - SSL_ERROR_SSL。

Interop+Crypto+OpenSslCryptographicException:錯誤:1425F102:SSL 常式:ssl_choose_client_version:不支持的協議

我知道錯誤是:

SSL 握手失敗並出現 OpenSSL 錯誤

我的 openssl 版本:

OpenSSL 1.1.1f  31 Mar 2020
built on: Mon Apr 20 11:53:50 2020 UTC
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-P_ODHM/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific

我也試圖改變我的openssl.cnf

  1. 在開頭添加這一行
openssl_conf = default_conf
  1. 在末尾添加這些行
[ default_conf ]
ssl_conf = ssl_sect
[ssl_sect]
system_default = ssl_default_sect

[ssl_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=1

但我仍然收到此錯誤。

PS:我正在使用 Azure Data Studio、VSCode 或任何像 .Net 這樣的客戶端我仍然收到錯誤 PS:重要的是說我過去可以在同一個數據庫中連接,但是,我需要將我的 PC 格式化為新的新鮮薄荷安裝

Tks all,對於誰面臨同樣的問題:我只是將 SSL 降級到 1.1.1 並且它可以工作。

SQL server 2008 r2 SP3 應該支持 1.1.1g 或 1.1.1f。

以下是要遵循的說明:

  1. 打開終端 (Ctrl+Alt+t)。
  2. 獲取壓縮包:wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
  3. 解壓壓縮包with tar -zxf openssl-1.1.1.tar.gz && cd openssl-1.1.1
  4. 發出命令./config
  5. sudo apt install make gcc
  6. make
  7. make test檢查可能的錯誤。
  8. 備份目前 openssl 二進製文件:sudo mv /usr/bin/openssl ~/tmp
  9. 發出命令sudo make install
  10. sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
  11. 執行命令sudo ldconfig以更新符號連結並重建庫記憶體。

假設執行步驟 4 到 10 沒有錯誤,您應該已經成功安裝了新版本的 OpenSSL。

同樣,從終端發出命令:

openssl version

您的輸出應如下所示:

OpenSSL 1.1.1  11 Sep 2018

來源(dif openssl 但方法相同)

https://askubuntu.com/questions/1102803/how-to-upgrade-openssl-1-1-0-to-1-1-1-in-ubuntu-18-04

引用自:https://unix.stackexchange.com/questions/602233