1
votes

We are trying to deploy a web application on Oracle Web logic server. Server is installed on Cent Os and using IBM Java. After deploying web app we are getting bad or corrupt certificate issue. Previously It was deployed in the same server few months ago. Then It was working fine. There has been no code change in the we application or any kind of configurations. This application is working fine on Tomcat 6 and 7 on a windows machine.

Below I have attached the stack trace.

javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received. at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(Unknown Source) at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown Source) at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown Source) at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source) at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown Source) at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source) at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source) at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source) at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Source) at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source) at com.certicom.tls.record.WriteHandler.write(Unknown Source) at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at java.io.FilterOutputStream.flush(FilterOutputStream.java:140) at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:186) at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:400) at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37) at com.crmit.ws2.crmoperations.SOAPParser.readOutputString(SOAPParser.java:70) at com.crmit.ws2.crmoperations.CRMOperation.queryStateLess17(CRMOperation.java:3688) at com.crmit.ws2.crmoperations.CRMOperation.queryStateLess17(CRMOperation.java:3589) at com.agenda.bo.BoCrmHelper.queryParentChildRecordsFromCRMOD(BoCrmHelper.java:58) at com.agenda.bo.BoAgenda.fetchAppointmentAgenda(BoAgenda.java:144) at com.QueryCrmodForAgenda.execute(QueryCrmodForAgenda.java:57) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3732) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

2

2 Answers

0
votes

There can be several reasons for this. Try adding -Dssl.debug to the Weblogic command line to get more information. As this seems to be something that used to work, it is possible the certificate expired, but that's only a guess at what ssl.debug will help clarify.

0
votes

We happen to solve this problem few weeks back. Sorry for late post. This got solved by a simple configuration in weblogic server. Go to the particular server in servers tab in weblogic. Open your server. Click General tab and go to end of the tab. You should see a arrow ">" saying "Advance". Click this Advance arrow and look for "use JSSE SSL" check box. Check this checkbox. Save the settings, come back and shutdown the server. Restart your server and redeploy your application in the server. This does not require restart of weblogic server. This solution worked for me.