Мне нужна помощь, чтобы исправить исключение сертификата в моем проекте. Я получаю java.security.cert.CertificateException: данные сертификата не могут быть обработаны Ниже приведены сведения о состоянии среды для клиентское приложение:java.security.cert.CertificateException: данные сертификата не могут быть обработаны
- Мой клиент приложение развертывается на IBM WebsphereApplicationServer (WAS) 6,0
- Использование IBM JDK 1.4.2 построен с использованием WAS 6,0
Сторонний поставщик Webservice недавно обновился до SHA-256. С настройкой выше клиента я получаю исключение Handshake. Мы попробовали использовать банку Bouncy Castle для поддержки SHA-256. После этого я вижу ниже исключения при принятии WebService вызова:
WebContainer : 0, SEND TLSv1 ALERT: fatal, description = certificate_unknown
WebContainer : 0, WRITE: TLSv1 Alert, length = 2
WebContainer : 0, called closeSocket()
WebContainer : 0, handling exception: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
Exception javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
Finalizer, called close()
Finalizer, called closeInternal(true)
к хранилищу и доверенных сертификатов у меня есть это от по умолчанию версии JDK:
keyStore is: /usr/local/opt/was/was60/java/jre/lib/security/cacerts
keyStore type is : jks
init keystore
trustStore is: /usr/local/opt/was/was60/java/jre/lib/security/cacerts
trustStore type is : jks
Здесь вы несколько журналов:
SystemErrR AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificate data canot be processed
at com.ibm.jsse2.bx.a(bx.java:114)
at com.ibm.jsse2.by.a(by.java:24)
at com.ibm.jsse2.by.a(by.java:444)
at com.ibm.jsse2.w.a(w.java:281)
at com.ibm.jsse2.w.a(w.java:105)
at com.ibm.jsse2.v.a(v.java:25)
at com.ibm.jsse2.by.a(by.java:272)
at com.ibm.jsse2.by.m(by.java:198)
at com.ibm.jsse2.by.startHandshake(by.java:68)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.cingular.csi.CSI.Namespaces.v94.wsdl.CingularWirelessCSI_wsdl.InquireWirelineServiceAppointmentReservationsSoapHttpBindingStub.inquireWireline
И, наконец, еще несколько замечаний:
Ни WAS, ни JDK не могут быть модернизированы, поскольку приложения устойчивы.
SocketFactory используется: com.ibm.jsse2.SSLSocketFactoryImpl
Пробовал javax.net.SSLSocketFactoryImpl. Он не работает в SocketContext.
Попробовал добавить сторонние серверные сертификаты в мой магазин доверия (cacerts) с помощью keytool. Это тоже не сработало.
Также попытался использовать DummyClientKeyFile.jks и DummyClientTrustFile.jks как файлы Keystore и truststore соответственно вместо cacerts JDK, но напрасно.
Я застрял в этом вопросе, так как более двух недель сейчас. Любая помощь приветствуется.