SP4データベースを使用してSQL Server 2008 R2に接続しようとしましたが、このエラーが発生し、ここにいくつかの回避策を試しましたが、何も機能しませんでした。
PS。このエラーをどのように処理するのか正確にはわかりませんが、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