Java 如何使用JDBC驱动程序和SSL连接连接到Sybase ASE
我正在尝试使用JDBC驱动程序与Sybase ASE 15.7建立SSL连接,但运气不好。 我尝试了以下选项:Java 如何使用JDBC驱动程序和SSL连接连接到Sybase ASE,java,ssl,jdbc,sybase,jconnect,Java,Ssl,Jdbc,Sybase,Jconnect,我正在尝试使用JDBC驱动程序与Sybase ASE 15.7建立SSL连接,但运气不好。 我尝试了以下选项: 使用JTDS 1.25驱动程序(JTDS-1.2.5.jar) 使用以下连接字符串:jdbc:jtds:sybase://host:port;databaseName=dbname;ssl=请求 我收到网络错误IOException:连接被拒绝 使用jconnect4(jconn4.jar) 使用以下连接字符串: jdbc:sybase:Tds:host:port/dbname?ENA
jdbc:jtds:sybase://host:port;databaseName=dbname;ssl=请求
我收到网络错误IOException:连接被拒绝
java.sql.SQLException:JZ00L:登录失败。检查链接到此异常的SQLWarnings的原因
...
java.sql.SQLException:I/O错误:DB服务器关闭连接。
我检查了Sybase日志,发现以下错误:
内核SSL或加密错误消息:“SSL握手失败。根错误:错误:140760FC:SSL例程:SSL23\u GET\u CLIENT\u HELLO:unknown protocol.
看起来Sybase服务器需要SSL连接,但java客户端仍然不使用SSL(尽管连接字符串属性标记为SSL=true)谢谢经过大量调查,我找到了解决办法。2实际上
jdbc:sybase:Tds:host:port/dbname?ENABLE\u SSL=true&SSL\u TRUST\u ALL\u CERTS=true
$Java\u HOME\jreX\lib\security\cacerts
下的Java默认信任存储中。如前所述,可以使用keytool导入证书尝试了1.6和1.7,请使用最新的JTD进行尝试。在过去的几年中,已经暴露了几个SSL/TLS相关的漏洞,并相应地发布了许多补丁。客户端似乎正在尝试使用SSL2或SSL3,大多数安全服务器不再支持这些协议。谢谢您。我知道JTDS中存在SSL问题。使用JTDS最新版本(1.3.1)再次尝试,结果相同