【问题标题】:TLS versions for Java in Oracle DatabaseOracle 数据库中 Java 的 TLS 版本
【发布时间】:2020-05-06 18:37:54
【问题描述】:

我正在使用调用 Oracle Database 11g 企业版 11.2.0.4.0 版中的 java 类的 pl/sql 过程。 java 类应该调用一个 web 服务,但是它只支持 TLS 1.1 和 1.2。 我检查了Java版本如下:

create or replace function test_get_java_property (prop in varchar2) return varchar2 is language java name 'java.lang.System.getProperty (java.lang.String) return java.lang.String';
SELECT dbms_java.get_ojvm_property (PROPSTRING => 'java.version') FROM dual;

查询的结果是“1.6.0_43”,如果我从路径“E:\oracle\product\11.2\dbhome_1\jdk\bin”输入“java –version”,我会得到:

Java version "1.5.0_51"
Java (TM) 2 Runtime Environment, Standard Edition (build 1.5.0_51-b10)
Java HotSpot (TM) 64-Bit Server VM (build 1.5.0_51-b10, mixed mode)

所以 Java 版本不支持 TLS 1.1 或 1.2。因此,必须启用 TLS 1.1 或 1.2。 如果可能的话,也许有必要更新数据库中的 java 版本。 如果是这样,我应该如何进行? 我无法更新 Oracle 版本。 我很欣赏任何其他类型的解决方案。

【问题讨论】:

标签: java oracle tls1.2


【解决方案1】:

您可能需要一个代理,即一个 Java 程序,它与没有安全性的数据库对话,并将 TLS 与 Web 服务对话。

【讨论】:

  • 网络服务需要 TLS。查询: select UTL_HTTP.REQUEST('pre-sdp.cloud.lmbg.audi.vwg/loomService',null,'file:E:\BOOM_LOOM\Wallets\VODAFONE',null) FROM DUAL;返回:ORA-06512:“SYS.UTL_HTTP”,第 1720 行 ORA-29024:La convalida del certificato non è riuscita。 29273. 00000 - “HTTP 请求失败” *原因:UTL_HTTP 包未能执行 HTTP 请求。 *操作:使用 get_detailed_sqlerrm 检查详细的错误消息。修复错误并重试 HTTP 请求。钱包配置正确
  • 这就是您需要代理的原因。这是一个根据数据库的要求与数据库对话并根据其要求与 Web 服务对话的程序。您使用 TLS 作为客户端连接到 Web 服务。您使用普通套接字作为客户端连接到数据库。当您收到一条消息时,您会将其传递给数据库。您收到来自数据库的响应并将其发送到 Web 服务。
  • Web 服务支持 TLS 1.1 和 1.2 并具有证书。我创建了一个证书组合,并且 Oracle 客户端具有 TLS 1.2。 Web 服务位于云中,但与客户端位于同一网络中。我可以通过 SOAPUI 访问该服务,但不能使用我指出的 SQL 命令。通过 PL/SQL 访问服务失败有什么限制?
猜你喜欢
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
  • 2016-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
相关资源
最近更新 更多