Ошибка SSL при попытке подключения к SQL -Server 2014 - PullRequest
0 голосов
/ 13 июля 2020

Ошибка при попытке подключения к SQL Server 2014. Я использую JRE7 и sqljdbc4-4.0.jar

вот мой код java:

package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Testing {

public static void main(String[] args) {
    String url = "jdbc:sqlserver://localhost:1433;databaseName=test;encrypt=false";
    String user = "sa";
    String pass = "";

    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    } catch (ClassNotFoundException e) {
        System.out.println("ClassNotFoundException: " + e);
    }
    
    try (Connection con=DriverManager.getConnection(url,user, pass);  
            Statement stmt=con.createStatement();  
            ResultSet rs=stmt.executeQuery("SELECT * FROM exts WHERE ext = 1001");){        

        if(rs.next()) {  
            System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));
        } else {
            System.out.println("NOT_FOUND");
        }
    }catch(Exception e){ 
        e.printStackTrace();
    }  
}

}

Вот полная трассировка стека:

java .ext.dirs: C: \ Cisco \ CallStudio \ eclipse \ jre \ lib \ ext; C: \ WINDOWS \ Sun \ Java \ lib \ ext com.microsoft.sqlserver.jdb c .SQLServerException: драйвер не смог установить sh безопасное соединение с SQL сервером с использованием шифрования Secure Sockets Layer (SSL). Ошибка: «SQL Сервер не вернул ответ. Соединение было закрыто. ClientConnectionId: dd9cabc2-3683-4a14-857 c -eeefd2751853». в com.microsoft.sqlserver.jdb c .SQLServerConnection.terminate (SQLServerConnection. java: 1667) в com.microsoft.sqlserver.jdb c .TDSChannel.enableSSL (IOBuffer. java: 1668) в com .microsoft.sqlserver.jdb c .SQLServerConnection.connectHelper (SQLServerConnection. java: 1323) в com.microsoft.sqlserver.jdb c .SQLServerConnection.login (SQLServerConnection. java: 991) в com.microsoft.sqlserver.login (SQLServerConnection. *1028*: 991) .sqlserver.jdb c .SQLServerConnection.connect (SQLServerConnection. java: 827) в com.microsoft.sqlserver.jdb c .SQLServerDriver.connect (SQLServerDriver. java: 1012) в java. *. 1034 * .DriverManager.getConnection (DriverManager. java: 571) в java. sql .DriverManager.getConnection (DriverManager. java: 215) в com.test.Testing.main (Testing. java : 32) Вызвано: java .io.IOException: SQL Сервер не вернул ответ. Соединение было закрыто. ClientConnectionId: dd9cabc2-3683-4a14-857 c -eeefd2751853 на com.microsoft.sqlserver.jdb c .TDSChannel $ SSLHandshakeInputStream.ensureSSLPayload (IOBuffer.m java: 651.sqlserver. *1044*: 651. * .TDSChannel $ SSLHandshakeInputStream.readInternal (IOBuffer. java: 708) по адресу com.microsoft.sqlserver.jdb c .TDSChannel $ SSLHandshakeInputStream.read (IOBuffer. java: 700) по адресу com.microsoft.sq c .TDSChannel $ ProxyInputStream.readInternal (IOBuffer. java: 895) в com.microsoft.sqlserver.jdb c .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.SSLSocket (SSLSocketImpl. *1057*: 1339) в sun.security.ssl.SSL SSLSocketImpl. java: 1323) в com.microsoft.sqlserver.jdb c .TDSChannel.enableSSL (IOBuffer. java: 1618) ... еще 7

1 Ответ

0 голосов
/ 13 июля 2020

Исключения SSL возникают при несоответствии версии TLS. Поскольку вы используете Java 7, попробуйте добавить sslProtocol = TLSv1.2 в строку подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...