尝试访问https url时出现错误证书SSL异常

时间:2015-09-14 08:12:34

标签: java

我有一段代码可以从网上下载excel并将其保存在所需的位置。我在本地运行代码 (作为“Java应用程序”运行)它运行得很好。但是当我在项目代码中添加它并将其部署在weblogic 10.3中时 它在认证后卡住了。你能帮帮我吗?

Document

我收到以下错误

event :finish do
  before do |user|
    # do something with user
  end

  transitions from: :active, to: :finished
end

经过一番挖掘后,我在weblogic服务器控制台中启用了使用public void saveFileFromUrlWithJavaIO(String fileName, String fileUrl) throws MalformedURLException, IOException { WEBLOGGER.info("Going into this method..."); BufferedInputStream in = null; FileOutputStream fout = null; WEBLOGGER.info("Going into this method..."); try { WEBLOGGER.info("trying to authenticate..."); authenticate(); WEBLOGGER.info("Authentication done..."); in = new BufferedInputStream(new URL(fileUrl).openStream()); WEBLOGGER.info("in operation done..."); fout = new FileOutputStream(fileName); WEBLOGGER.info("Going into this method..."); byte data[] = new byte[1024]; int count; WEBLOGGER.info("Going into this method..."); while ((count = in.read(data, 0, 1024)) != -1) { fout.write(data, 0, count); } } finally { if (in != null) in.close(); if (fout != null) fout.close(); } } 。现在我收到以下错误。

javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.

2 个答案:

答案 0 :(得分:0)

我删除了代码中的所有身份验证和代理处理内容,并在weblogic控制台中进行了以下更改。

1)
In setEnv file located in your weblogic server path(i.e /apps/appName/bin) added:
JAVA_OPTIONS="${JAVA_OPTIONS} -Dhttps.proxyHost=x.y.z"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dhttps.proxyPort=port"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dhttps.nonProxyHosts=*.y.z"

2) In weblogic console: servers-> keystores Change from “Demo identity and Demo trust” to “Custom Identity
and Java Standard Trust”

3) in weblogic console: servers-> SSL-> advanced-> Tick “Use JSSE SSL” and also set “Hostname Verification” to
none

有用的链接:http://www.ateam-oracle.com/improve-ssl-support-for-your-weblogic-domains/

答案 1 :(得分:0)

有同样的问题。并一步解决:

在weblogic控制台上:servers-> SSL的>高级 - >启用“使用JSSE SSL”。

阅读我正在使用的weblogic版本的文档(10.3.6),我相信会出现这样的问题:SSL的默认实现支持少量协议......根据这个:

  

如果启用了JSSE,则此属性值将启用任何以“TLS”开头的协议,用于发送和接受的消息;例如,TL​​S V1.0,TLS V1.1和TLS V1.2。如果启用了基于Certicom的SSL实现,则仅启用TLS V1。