Я пытаюсь подключить свое веб-приложение к SQL Server 2012 с включенным шифрованием SSL с использованием sqljdbc4, но я получаю следующую ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: драйверу не удалось установить безопасное соединение с SQL Server с использованием шифрования Secure Sockets Layer (SSL). Ошибка: «SQL Server не вернул ответ. Соединение было закрыто. ClientConnectionId: aae3c3a9-9b39-4141-aeda-577e06a28dfd ". На com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate (SQLServerConnection.java:1667) по адресу com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL (IOBuffer.java:1668) на com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper (SQLServerConnection.java:1323) по адресу com.microsoft.sqlserver.jdbc.SQLServerConnection.login (SQLServerConnection.java:991) по адресу com.microsoft.sqlserver.jdbc.SQLServerConnection.connect (SQLServerConnection.java:827) по адресу com.microsoft.sqlserver.jdbc.SQLServerDriver.connect (SQLServerDriver.java:1012) в java.sql.DriverManager.getConnection (DriverManager.java:571) в java.sql.DriverManager.getConnection (DriverManager.java:215) ... Еще 41 причина: java.io.IOException: SQL Server не вернул ответ. Соединение было закрыто. ClientConnectionId: aae3c3a9-9b39-4141-aeda-577e06a28dfd на com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.ensureSSLPayload (IOBuffer.java:651) по адресу com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.readInternal (IOBuffer.java:708) в com.microsoft.sqlserver.jdbc.TDSChannel $ SSLHandshakeInputStream.read (IOBuffer.java:700) по адресу com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream.readInternal (IOBuffer.java:895) по адресу com.microsoft.sqlserver.jdbc.TDSChannel $ ProxyInputStream.read (IOBuffer.java:883) в sun.security.ssl.InputRecord.readFully (InputRecord.java:442) в sun.security.ssl.InputRecord.read (InputRecord.java:480) в sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:927) в sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1312) в sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1339) в sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1323) по адресу com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL (IOBuffer.java:1618)

обратите внимание, что размер ключа сертификата сервера превышает 4 КБ. когда я пытаюсь подключиться к серверу SQL с помощью студии управления SQL, я получаю следующую ошибку:

Соединение с сервером было успешно установлено, но во время входа в систему произошла ошибка. (провайдер: поставщик SSL, ошибка: 0 - существующее соединение было принудительно закрыто удаленным хостом.) (Microsoft SQL Server, ошибка: 10054)

но когда я использую сертификат с размером ключа менее 4 КБ, я смог подключиться без каких-либо ошибок. Уменьшение размера сертификата не является приемлемым решением, так что я могу сделать, чтобы иметь возможность подключиться к SQL Server 2012, используя sqljdbc 4 с включенным SSL и используя сертификат с размером ключа больше 4k.

0