【问题标题】:JDBC over SSL to a Cache database通过 SSL 的 JDBC 到缓存数据库
【发布时间】:2011-07-20 00:06:58
【问题描述】:

我在这里还远远不够,所以请耐心等待。我们通过 com.intersys.jdbc.cachedriver 使用 JDBC 在 Intersystems Cache 中运行存储过程并在 Java 中获取结果。但是,还有其他客户端通过 telnet 使用终端直接连接到缓存。我们必须锁定 Cache 的 telnet 端口,以便只能通过 SSL 进行 telnet。但是,这里的 Cache 专家说,锁定 Cache 中的一个端口会将它们全部锁定,因此 Java 到 Cache 的连接也必须使用 SSL。我模糊地理解一些 JDBC 驱动程序支持 SSL,但我没有看到 Cache 支持。我需要知道的是:

  1. 为 JDBC 连接配置 SSL 需要什么? (我们使用的是 JBoss 4.2.3)
  2. 证书呢?我认为那些必须去某个地方。
  3. 锁定 telnet 连接实际上是否也会以同样的方式锁定 JDBC?

【问题讨论】:

    标签: ssl jdbc intersystems-cache


    【解决方案1】:
    1. Configuring Java Clients to Use SSL/TLS with Caché

    2. Using SSL/TLS with Caché

    3. Telnet 与 ssh 是关于操作系统允许什么的问题,并且仅与外围缓存相关。这对第 1 项或第 2 项没有任何意义。因此,在回答您提出的直接问题时,“否”。

    【讨论】:

    • 感谢您的链接!我一直在寻找这样的文件,但找不到。不幸的是,它只涉及通过 java.sql.DriverManager 获取数据库连接。我想有人在某处仍然这样做,但我们使用由 JBoss 创建的 java.sql.Datasource。我不清楚如何将一个指令翻译成另一个指令。对于问题3,我可能不清楚。我不是在问操作系统功能。缓存具有使终端连接和系统管理门户需要 SSL 的设置。他们说打开它也会为 JDBC 连接打开它。是吗?
    • 啊...您正在谈论设置“超级服务器 SSL/TLS 支持”,其中选项是“禁用”、“启用”、“必需”。我不清楚。是的,这仅适用于连接到 SuperServer 端口的任何东西。我对您将其描述为有关“telnet 连接”的设置感到困惑(仅在 Windows 上相关)。
    • 很抱歉花了这么长时间才接受这个答案。我从来没有发现如何配置 Java 数据源以使用 SSL 与缓存通信,而不是使用 DriverManager。我问过Intersystems,特别指出你链接的文件,这意味着它一定是可能的,但到目前为止还没有人回复我。我们现在正在寻找一种解决方法,这样我们就不必将“超级服务器”端口设置为需要 SSL。感谢您的帮助!
    【解决方案2】:
      1. What's needed to configure SSL for the JDBC connections? (We're using JBoss 4.2.3)
    

    详情请参阅http://docs.intersystems.com/cache20102/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_ssltls#GCAS_ssltls_javacli。本节没有明确提及 JDBC,但对于 JDBC 确实如此(并且已为文档 2011.1 [next release] 添加了参考。)

      2. What about certificates? I assume those have to go somewhere.
    

    引用文档:“如果客户端有私钥和证书,这些都存储在客户端的密钥库中;密钥库还可以保存客户端的根 CA 证书和任何中间 CA 证书。为了验证服务器,客户端可能需要服务器的根 CA 证书和任何中间 CA 证书,这些可以存储在客户端的信任库中,也可以与客户端证书信息一起存储在密钥库中。有关密钥库和信任库的更多信息,请参阅“密钥库和Java 安全套接字扩展 (JSSE) 参考指南中的“信任库”。”

      3. Is it actually true that locking down the telnet connections is also going lock down JDBC in the same way? 
    

    是 -- 如果 telnet 连接到 require TLS,那么超级服务器 TLS 设置需要是必需的,这意味着您必须对通过超级服务器的任何事情(包括 JDBC)使用 TLS .如果您只想允许将 TLS 用于 telnet 连接,请将 TLS 值设置为 Enabled,这将允许通过其他方式(例如 JDBC)进行非 TLS 连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多