我正尝试在 Oracle Sql Developer 中从 Java 发出 HTTP GET 请求。
在我的电脑上一切正常。
唯一不起作用的是,当我访问 https 子域时,它给出了一个 SSLHandshakeException
错误(例如,如果我访问 https://www.example.com 它有效,但如果我访问 https://subdomain.example.com 它失败)
然后我所做的是将证书添加到 Java 缓存中,然后它就起作用了。
但是,当我在服务器上执行此操作时,使用 PL/SQL 调用 Java 函数从 SQL Developer 执行此操作时,它失败了,我对证书也做了同样的事情。
我不知道您是否在 sql 开发人员的 Java 中引用了 cacerts,因为在我的机器中如果我不得不引用这个 (-Djavax.net.ssl.keyStore = C:\Oracle\Middleware\Oracle_Home\oracle_common\jdk\jre\lib\security\cacerts)
如果我在 Java 代码中这样做,这会一直报错:
System.setProperty ("javax.net.ssl.trustStore", "/path/jdk/jdk6/lib/security/cacerts.jks");
我怎么知道它是否正在接受证书?
我的机器:Java 1.7 和 1.8 工作 服务器:Java 1.6 不工作
问候和感谢
最佳答案
这是 Java 6 的问题,因此在 Java 7 和 Java 8 中可以完美运行。
关于javax.net.ssl.SSLHandshakeException : Received fatal alert: handshake_failure only in server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49900952/