我们正在尝试在Oracle Web逻辑服务器上部署Web应用程序。服务器安装在Cent Os上并使用IBM Java。部署Web应用程序后,我们遇到了错误或损坏的证书问题。 以前它几个月前部署在同一台服务器上。然后它工作正常。 我们的应用程序或任何类型的配置都没有代码更改。 这个应用程序在Windows机器上的Tomcat 6和7上运行良好。
下面我附上了堆栈跟踪。
javax.net.ssl.SSLKeyException:致命警告:BAD_CERTIFICATE - 腐败 或收到不可用的证书。在 com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(未知 来源)at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(未知 来源)at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(未知 来源)at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(未知 来源)at com.certicom.tls.record.MessageInterpreter.interpretContent(未知 来源)at com.certicom.tls.record.MessageInterpreter.decryptMessage(未知 来源)com.certicom.tls.record.ReadHandler.processRecord(未知 来源)com.certicom.tls.record.ReadHandler.readRecord(未知 来源)at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(未知 来源)at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(未知 来源)com.certicom.tls.record.WriteHandler.write(未知来源) 在com.certicom.io.OutputSSLIOStreamWrapper.write(未知来源)at at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 在java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 在java.io.FilterOutputStream.flush(FilterOutputStream.java:140)at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:186) 在 weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:400) 在 weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37) 在 com.crmit.ws2.crmoperations.SOAPParser.readOutputString(SOAPParser.java:70) 在 com.crmit.ws2.crmoperations.CRMOperation.queryStateLess17(CRMOperation.java:3688) 在 com.crmit.ws2.crmoperations.CRMOperation.queryStateLess17(CRMOperation.java:3589) 在 com.agenda.bo.BoCrmHelper.queryParentChildRecordsFromCRMOD(BoCrmHelper.java:58) 在com.agenda.bo.BoAgenda.fetchAppointmentAgenda(BoAgenda.java:144) 在com.QueryCrmodForAgenda.execute(QueryCrmodForAgenda.java:57)at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) 在 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) 在 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) 在 org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:707)at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)at at weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:227) 在 weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) 在 weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) 在 weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.wrapRun(WebAppServletContext.java:3732) 在 weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run(WebAppServletContext.java:3696) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 在 weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 在 weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) 在 weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) 在 weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) 在weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
答案 0 :(得分:0)
这可能有几个原因。尝试将-Dssl.debug添加到Weblogic命令行以获取更多信息。由于这似乎是以前工作的东西,证书可能已过期,但这只是猜测ssl.debug将有助于澄清。
答案 1 :(得分:0)
几周前我们碰巧解决了这个问题。对不起,迟到的帖子。 这是通过weblogic服务器中的简单配置解决的。 转到weblogic中服务器选项卡中的特定服务器。打开你的服务器。单击“常规”选项卡,然后转到选项卡的末尾。你应该看到一个箭头“>”说“提前”。 单击此高级箭头,然后查找“使用JSSE SSL”复选框。选中此复选框。保存设置,返回并关闭服务器。重新启动服务器并在服务器中重新部署应用程序。 这不需要重新启动weblogic服务器。这个解决方案对我有用。