SSL-соединение DB2 JDBCJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 SSL-соединение DB2 JDBC

Сообщение Anonymous »

Недавно наш партнер обновил свою среду базы данных для использования SSL, и нам необходимо обновить конфигурацию нашего приложения, чтобы установить соединение с базой данных.

Я создал файл JKS, а также импортировал сертификаты в JKS.

Когда я использую строку подключения SQL Squirrel:


jdbc:db2://[хост]:[порт]/[databaseName]:sslConnection=true;sslTrustStoreLocation=c:\db2_ssl\db2.jks;sslTrustStorePassword=teste123;


Он подключается успешно.

Если я использую точно такая же строка подключения:

Код: Выделить всё

Connection connection = DriverManager.getConnection("jdbc:db2://[host]:[port]/[databaseName]:sslConnection=true;sslTrustStoreLocation=c:\db2_ssl\db2.jks;sslTrustStorePassword=teste123;", "myuser", "mypassword");
Мне выдается следующее исключение:

Код: Выделить всё

com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2030][11211][3.64.96] A communication error occurred during operations on the connection's underlying socket, socket input stream,
or socket output stream.  Error location: T4Agent.sendRequest() - flush (-1).  Message: Received fatal alert: handshake_failure. ERRORCODE=-4499, SQLSTATE=08001
at com.ibm.db2.jcc.am.bd.a(bd.java:321)
at com.ibm.db2.jcc.t4.a.a(a.java:548)
at com.ibm.db2.jcc.t4.a.a(a.java:543)
at com.ibm.db2.jcc.t4.a.f(a.java:484)
at com.ibm.db2.jcc.t4.a.flush_(a.java:390)
at com.ibm.db2.jcc.am.Agent.flowOutsideUOW(Agent.java:246)
at com.ibm.db2.jcc.t4.b.b(b.java:1220)
at com.ibm.db2.jcc.t4.b.b(b.java:788)
at com.ibm.db2.jcc.t4.b.a(b.java:760)
at com.ibm.db2.jcc.t4.b.a(b.java:421)
at com.ibm.db2.jcc.t4.b.a(b.java:396)
at com.ibm.db2.jcc.t4.b.(b.java:334)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:232)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:198)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:475)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:116)
at java.sql.DriverManager.getConnection(DriverManager.java:379)
at java.sql.DriverManager.getConnection(DriverManager.java:415)
at com.ibm.sdpi.wmb.flows.productdata.ProductDataAnnouncementNode.evaluate(ProductDataAnnouncementNode.java:93)
at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:265)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1480)
at com.ibm.broker.plugin.MbOutputTerminal._propagate(Native Method)
at com.ibm.broker.plugin.MbOutputTerminal.propagate(MbOutputTerminal.java:114)
at com.ibm.sdpi.wmb.flows.common.SDPIOutboundCommon_JavaCompute.evaluate(SDPIOutboundCommon_JavaCompute.java:226)
at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:265)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1480)
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.ibm.jsse2.o.a(o.java:22)
at com.ibm.jsse2.o.a(o.java:34)
at com.ibm.jsse2.SSLSocketImpl.b(SSLSocketImpl.java:378)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:479)
at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:437)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:772)
at com.ibm.jsse2.k.write(k.java:3)
at com.ibm.db2.jcc.t4.db.b(db.java:1685)
at com.ibm.db2.jcc.t4.db.a(db.java:1633)
at com.ibm.db2.jcc.t4.a.f(a.java:451)
... 22 more
Я использую одни и те же драйверы DB2 в SQL Squirrel и приложении.

Почему он работает в SQL Squirrel и не использует DriverManager?

Есть ли у вас идеи, как подключиться к удаленной базе данных DB2 с помощью SSL?

Заранее спасибо.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»