Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JDBC驱动程序和SSL连接连接到Sybase ASE_Java_Ssl_Jdbc_Sybase_Jconnect - Fatal编程技术网

Java 如何使用JDBC驱动程序和SSL连接连接到Sybase ASE

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驱动程序与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?ENABLE_SSL=true

    我得到
    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)

  • 尝试搜索Sybase文档时运气不佳,既没有出现此错误,也没有使用JConnect搜索SSL

    任何答案都将不胜感激-我对驱动程序的类型和配置非常灵活


    谢谢

    经过大量调查,我找到了解决办法。2实际上

  • 使用信任所有证书JDBC连接字符串参数: 如果您不介意信任所有证书(仅当您完全信任您正在使用的网络,尤其是公共internet上的任何东西时,才这样做),您可以添加一个连接字符串,指示创建连接的SSLSocketFactory信任所有证书。连接字符串如下所示:
    jdbc:sybase:Tds:host:port/dbname?ENABLE\u SSL=true&SSL\u TRUST\u ALL\u CERTS=true
  • 使用sybase证书: 需要将证书导入java应用程序信任存储。 如果您没有使用指定的信任存储,它可能会被导入到
    $Java\u HOME\jreX\lib\security\cacerts
    下的Java默认信任存储中。如前所述,可以使用keytool导入证书

  • 尝试了1.6和1.7,请使用最新的JTD进行尝试。在过去的几年中,已经暴露了几个SSL/TLS相关的漏洞,并相应地发布了许多补丁。客户端似乎正在尝试使用SSL2或SSL3,大多数安全服务器不再支持这些协议。谢谢您。我知道JTDS中存在SSL问题。使用JTDS最新版本(1.3.1)再次尝试,结果相同