gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:51 25 4
gpt4 key购买 nike

我正在尝试使用 JDBC 驱动程序建立与 Sybase ASE 15.7 的 SSL 连接,但没有成功。我尝试了以下选项:

  1. 使用 JTDS 1.25 驱动程序 (jtds-1.2.5.jar)

    使用以下连接字符串:jdbc:jtds:sybase://host:port;databaseName=dbname;ssl=request

    我得到了 网络错误 IOException:连接被拒绝

  2. 使用 Jconnect 4 (jconn4.jar)

    使用以下连接字符串:

    jdbc:sybase:Tds:host:port/dbname?ENABLE_SSL=true

    我得到 java.sql.SQLException: JZ00L: 登录失败。检查链接到此异常的 SQLWarnings 的原因
    ...
    java.sql.SQLException:I/O 错误:数据库服务器关闭连接。

    我检查了 Sybase 日志看到以下错误:

    内核 SSL 或加密错误消息:“SSL 握手失败。根错误:错误:140760FC:SSL 例程:SSL23_GET_CLIENT_HELLO:未知协议(protocol)'。

    看起来 Sybase 服务器需要 SSL 连接,但 Java 客户端仍未使用 SSL(尽管连接字符串属性标记为 ssl=true)。

尝试搜索 Sybase 文档但运气不佳,既没有找到这个错误也没有找到使用 JConnect 的 SSL。

任何答案将不胜感激 - 我对驱动程序类型和配置很灵活。

谢谢

最佳答案

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

  1. 使用信任所有证书的 JDBC 连接字符串参数:如果您不介意信任所有证书(仅当您完全信任您正在使用的网络,尤其是公共(public)互联网上发生的任何事情时才这样做),您可以添加一个连接字符串,指示 SSLSocketFactory 创建要信任的连接所有证书。连接字符串如下所示:jdbc:sybase:Tds:host:port/dbname?ENABLE_SSL=true&SSL_TRUST_ALL_CERTS=true
  2. 使用 sybase 证书:需要将证书导入到 Java 应用程序信任库中。如果您没有使用指定的信任库,它可能会被导入到 $JAVA_HOME\jreX\lib\security\cacerts 下的 Java 默认信任库中。可以使用 keytool 导入证书,如说明 here .

关于java - 如何使用 JDBC 驱动程序和 SSL 连接连接到 Sybase ASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31383145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com