【问题标题】:JDBC connect to Oracle database with SSLJDBC 使用 SSL 连接到 Oracle 数据库
【发布时间】:2016-12-18 15:53:19
【问题描述】:

我已经配置了一个标准的数据库连接,我连接到一个 Oracle 数据库。 数据库将配置为使用 SSL,这意味着我需要指定服务器证书才能连接。

SSL 本身带有 SSL_CLIENT_AUTHENTICATION=FALSE 并配置了 Oracle Wallet。

使用 JDBC 可以做到吗?

这是我当前的代码:

        Class.forName("oracle.jdbc.OracleDriver");

        connection = DriverManager.getConnection("jdbc:oracle:thin:@192.168.200.96:1521:NNVSDB", "VSU22","VSU22");

【问题讨论】:

  • 可能想看看this
  • stackoverflow.com/questions/10415733/… 的可能重复项(不投票结束,因为那个问题 + 我的回答已经 4 年了,我不确定从那时起情况是否发生了变化/改进)。
  • 你能弄清楚配置吗?

标签: java oracle ssl jdbc


【解决方案1】:

您可以在此处找到包含一些文档的 pdf: SSL With Oracle JDBC,你有一些代码示例第 11 和 12 页:

String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=servername)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=servicename)))"); 
Properties props = new Properties(); 
props.setProperty("user", "scott"); 
props.setProperty("password", "tiger"); 
props.setProperty("javax.net.ssl.trustStore", 
                  "/truststore/ewallet.p12"); 
props.setProperty("javax.net.ssl.trustStoreType","PKCS12"); 
props.setProperty("javax.net.ssl.trustStorePassword","welcome123"); 
Connection conn = DriverManager.getConnection(url, props); 

【讨论】:

  • 我看到了这个例子,但我使用的是钱包而不是信任库。
  • 是的,您有两种类型的钱包:SSO 和 PKCS12,您可以为 SSO 设置属性,甚至不需要密码props.setProperty("javax.net.ssl.trustStore", "/truststore/cwallet.sso"); props.setProperty("javax.net.ssl.trustStoreType","SSO");
  • @DavidFaizulaev 能否请您发布监听器、sqlnet 和 tnsnames.ora,我正在尝试使用 oracle 钱包配置带有 ssl 的 jdbc,但没有这样做
猜你喜欢
  • 1970-01-01
  • 2017-01-03
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 2015-03-16
  • 1970-01-01
  • 2021-11-11
相关资源
最近更新 更多