Как подключить Sybase ASE к JDBC и SSL-соединению? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь установить SSL-соединение с Sybase ASE 16.0 с помощью драйвера JDBC.На сервере через интерактивный SQL я могу получить доступ к серверу ASE с помощью SSL.Я использую Jconnect 4 (jconn4.jar) и JDK 8 со следующей строкой подключения: jdbc: sybase: Tds: host: port / dbname? ENABLE_SSL = true.Сертификат сервера импортирован в хранилище доверенных сертификатов приложения Java с помощью keytool.Я прошел через другой вопрос, уже заданный здесь , но это не помогает мне решить эту проблему.Тестовый код ниже.

try {
        Class.forName("com.sybase.jdbc4.jdbc.SybDriver");
        Connection con = DriverManager.getConnection(
                "jdbc:sybase:Tds:host:5000/master?ENABLE_SSL=TRUE", "sa",
                "password");
        System.out.println("*********Connected**********");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("select @@ssl_ciphersuite");
        int i = 1;
        while (rs.next()) {
            System.out.println("Row: " + i);
            System.out.println("ID: " + rs.getString(1).trim());
            System.out.println(" ");
            i = i + 1;
        }
        con.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

Мой код JDBC выбрасывает ниже исключения.Соединение должно быть установлено через безопасную сеть, но с ошибкой ниже.

java.sql.SQLException: JZ00L: Login failed.  Examine the SQLWarnings chained to this exception for the reason(s).
    at com.sybase.jdbc4.jdbc.SybConnection.getAllExceptions(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybConnection.handleSQLE(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybConnection.a(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybConnection.handleHAFailover(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybConnection.<init>(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybConnection.<init>(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.testing.Test.main(Test.java:41)

Я проверил журнал Sybase и вижу следующую ошибку:

kernel  SSL or Crypto Error Message: 'The SSL handshake failed.  Root error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol'.

Я просмотрел несколько документов Sybase, но безуспешно.Любая помощь будет высоко ценится.Заранее спасибо !!

...