web-dev-qa-db-ja.com

TLS1.2がSQL Serverへの接続を切断するのはなぜですか?

注:質問をStackOverflowからdbaに移動するように要求されました

これが本当にSQL Serverの問題であるかどうかはわかりません。

クライアントはTLS 1.2に移動しましたが、SQL Server 2017に接続するアプリを壊し、ひざの上にダンプされました。

私が言えることは、Linuxの人であることは、TLS 1.1に戻ったときだけでした。これがうまくいきました。ここでは、このすべての混乱のなかで収集できる唯一のエラーメッセージを示します。

dbnetlib connectionopen secdoclienthandshake sslセキュリティエラー

SS StudioでDBをクリックすると、次のエラーメッセージが表示されます。

「ホスト名」への接続中にエラーが発生しました。

ユーザー「CORP\myaccount」のログインに失敗しました。 (.Net SqlClientデータプロバイダー)

サーバー名:ホスト名
エラー番号:18456
重大度:14
州:1
行番号:65536

プログラムの場所:

system.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity、SqlConnectionString connectionOptions、SqlCredential credential、Object providerInfo、String newPassword、SecureString newSecurePassword、Boolean redirectedUserInstance、SqlConnectionString userConnectionOptions、SessionData reconnectSessionData、DbConnectionPoolManagerにアクセスする)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options、DbConnectionPoolKey poolKey、Object poolGroupProviderInfo、DbConnectionPool pool、DbConnection owningConnection、DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection、DbConnectionPoolGroup poolGroup、DbConnectionOptions userOptions)
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection、TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1再試行、DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection、DbConnectionFactory connectionFactory、TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1再試行)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1リトライ)
System.Data.SqlClient.SqlConnection.Open()で
Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci、IServerType server)
Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ConnectToServer(UIConnectionInfo connectionInfo、IDbConnection liveConnection、Boolean validateConnection)

TLS 1.2は、SSをホストするサーバーで有効にされました。

3
Marinaio

SQL Serverの古いバージョンとSQL Serverクライアントは、TLS 1.2をサポートしていません。チェックアウト Microsoft SQL ServerのTLS 1.2サポート 必要なものを確認するか、SQL Serverを最新のサービスパック/アップデートに、クライアントを最新バージョンにアップグレードしてください。私はSQL Server 2017を使用しているようですので、サーバー側で問題なく、クライアント側でこれに対処する必要があります。スタックトレースに基づいて、.NETのアップグレードでこれに対処できると思います。

TLS 1.2を使用してSQL Serverのさまざまなバージョンと接続されたSQLクライアント(jTDSを含む)のさまざまなバージョンとプラットフォームを使用した多数の接続があります。 jTDSの最新の公式リリースはTLS 1.2をサポートしていないため、リリースされていない開発バージョンをダウンロードするか、それをJDBCに変換する必要があります。

2
Tony Hinkle