在我当前的项目中,我有一个 Oracle 数据库 11g。数据库上安装了Java 1.6。
我的任务是通过 https 从数据库过程 (plsql) 连接到 Web 服务提供商。对于此任务,我使用了 Java 存储过程(而不是 HTTP_UTIL plsql 包),因为我还需要在发送之前使用证书对 XML 进行签名。到目前为止,整个过程运行良好(图 A)。
现在网络服务提供商已禁用 TLS1.0,仅支持 TLS1.1 和 TLS1.2。这给我带来了问题,因为Java 1.6不支持TLS1.1和TLS1.2,并且无法在数据库端升级Java。 这个想法是编写某种 Web 服务代理..(图 B):
我的想法是制作某种 Web 服务代理(通过 SSL 进行 Web 服务到 Web 服务的通信),但不知道这是否是正确的方法?另一个问题是最好的(简单的)方法是什么?对于 Web 服务部署,我有 Oracle Weblogic 或 Tomcat 容器。
感谢您提供任何信息。对于这种情况,我无法从 Oracle 获得任何支持(通过 TLS1.1/TLS1.2 使用来自 Oracle 11g 的 Web 服务)。
最佳答案
您可以使用Bouncy Castle作为 JCE 提供程序,是否可以将其他库加载到 JVM 中。 您必须在 SSL 连接中使用 Bouncy CaSTLe,如所述 here 。
否则你可以升级your database如果您能以某种方式在 PL/SQL 中对 XML 进行签名。
此外,您也可以选择您提到的其他替代方案,只要它位于安全的环境中,就不会有问题。也许这也可以简化您的设置,因为您不必在数据库中签署 XML,而是可以在 oracle/tomcat 容器中进行签名。
关于java - Oracle Database 11g 如何通过 HTTPS TLS1.1、TLS1.2 连接到 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49357937/