클라이언트를 사용할 때 Linux Mint + SQL Server 2008 R2에 대한 SQL Server 연결이 실패합니다.

클라이언트를 사용할 때 Linux Mint + SQL Server 2008 R2에 대한 SQL Server 연결이 실패합니다.

SP4 데이터베이스를 사용하여 SQL Server 2008 R2에 연결하려고 하는데 이 오류가 발생하고 여기에 있는 몇 가지 해결 방법을 시도했지만 그 중 아무 것도 효과가 없었습니다.

추신. 이 오류를 어떻게 처리해야 할지 정확히 모르겠지만 SSL+LINUX 문제인 것은 확실합니다.

Microsoft.Data.SqlClient.SqlException(0x80131904): 서버에 대한 연결이 성공적으로 설정되었지만 사전 로그인 핸드셰이크 중에 오류가 발생했습니다. (공급자: TCP 공급자, 오류: 35 - 내부 예외 잡기)

System.Security.Authentication.AuthenticationException: 인증이 실패했습니다. 내부 예외를 참조하세요.

Interop+OpenSsl+SslException: OpenSSL 오류로 인해 SSL 핸드셰이크가 실패했습니다 - SSL_ERROR_SSL.

Interop+Crypto+OpenSslCryptographicException: 오류: 1425F102: SSL 루틴: ssl_choose_client_version: 지원되지 않는 프로토콜

나는 오류가 다음과 같다는 것을 알고 있습니다.

OpenSSL 오류로 인해 SSL 핸드셰이크가 실패함

내 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
    
  2. 끝에 이 줄을 추가하세요.

     [ 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 형식을 연결하세요

답변1

모두에게 감사드리며, 동일한 문제에 직면한 모든 분들께 감사드립니다. 방금 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

관련 정보