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
.
이 줄을 처음에 추가하세요
openssl_conf = default_conf
끝에 이 줄을 추가하세요.
[ 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를 지원해야 합니다.
따라야 할 지침은 다음과 같습니다.
- 터미널을 엽니다(Ctrl+Alt+t).
- 압축된 패키지를 가져옵니다.
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
- 타르볼의 압축을 푼다
with tar -zxf openssl-1.1.1.tar.gz && cd openssl-1.1.1
- 주문을 발행합니다
./config
. sudo apt install make gcc
make
make test
가능한 오류가 있는지 확인하세요.- 현재 openssl 바이너리를 백업합니다.
sudo mv /usr/bin/openssl ~/tmp
- 주문을 발행합니다
sudo make install
. sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
- 명령을 실행하여
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