Websphere - Сервис SOAP - Ошибка цепочки сертификата с использованием SSLSocketFactory по умолчанию - PullRequest
0 голосов
/ 04 сентября 2018

Я работаю в среде Websphere Application Server 8.5 и пытаюсь интегрировать новый веб-сервис, который использует протокол HTTPS. Учтите, что первая интеграция была сделана при вызове службы по протоколу HTTP, и поэтому я изменил код, чтобы управлять связью с помощью SSL. Здесь ниже вы можете увидеть код, управляющий подключением к этой службе, но в данный момент я получаю сообщение об ошибке во время доверия сертификата. Я уже проверил, что в WAS TreustStore установлен правильный сертификат.

КОД:

    GenericResponse response = null;
    AdaptiveAuthentication service = new AdaptiveAuthentication();
    AdaptiveAuthenticationInterface serviceInterface = service.getAdaptiveAuthentication();
    BindingProvider bindingProvider = ((BindingProvider) serviceInterface);
    Map<String, Object> requestCtx = bindingProvider.getRequestContext();
    requestCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpoint);
    Client client = ClientProxy.getClient(serviceInterface);
    HTTPConduit http = (HTTPConduit) client.getConduit();
    TLSClientParameters tls_cp = new TLSClientParameters();
    SocketFactory sf = SSLSocketFactory.getDefault();
    if( sf instanceof SSLSocketFactory){
        tls_cp.setSSLSocketFactory((SSLSocketFactory) sf);
    }
    tls_cp.setUseHttpsURLConnectionDefaultSslSocketFactory(true);   
    tls_cp.setTrustManagers(getTrustAllTrustManager());
    tls_cp.setSecureRandom(new SecureRandom());
    tls_cp.setCipherSuites(Arrays.asList(((SSLSocketFactory) sf).getDefaultCipherSuites()));
    tls_cp.setJsseProvider((new com.ibm.security.jgss.IBMJGSSProvider()).getName());
    requestCtx.put(JAXWSProperties.SSL_SOCKET_FACTORY,tls_cp.getSSLSocketFactory());
    requestCtx.put(com.sun.xml.internal.ws.developer.JAXWSProperties.SSL_SOCKET_FACTORY, tls_cp.getSSLSocketFactory());
    http.setTlsClientParameters(tls_cp);
    if (type.equals(TMConstants.Type.ANALYZE)) {
        response = serviceInterface.analyze((AnalyzeRequest) request);
    } else if (type.equals(TMConstants.Type.NOTIFY)) {
        response = serviceInterface.notify((NotifyRequest) request);
    }

ОШИБКА:

org.apache.cxf.binding.soap.SoapFault: проблема записи модели SAAJ в поток at org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor $ SAAJOutEndingInterceptor.handleMessage (SAAJOutInterceptor.java:221) ~ [cxf-rt-bindings-soap-2.7.3.jar: 2.7.3] at org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor $ SAAJOutEndingInterceptor.handleMessage (SAAJOutInterceptor.java:172) ~ [cxf-rt-bindings-soap-2.7.3.jar: 2.7.3] в org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:271) ~ [cxf-api-2.7.3.jar: 2.7.3] в org.apache.cxf.endpoint.ClientImpl.doInvoke (ClientImpl.java:530) [cxf-api-2.7.3.jar: 2.7.3] в org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:463) [cxf-api-2.7.3.jar: 2.7.3] в org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:366) [cxf-api-2.7.3.jar: 2.7.3] в org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:319) [cxf-api-2.7.3.jar: 2.7.3] в org.apache.cxf.frontend.ClientProxy.invokeSync (ClientProxy.java:96) [cxf-rt-frontend-simple-2.7.3.jar: 2.7.3] в org.apache.cxf.jaxws.JaxWsClientProxy.invoke (JaxWsClientProxy.java:133) [cxf-rt-frontend-jaxws-2.7.3.jar: 2.7.3] at com.sun.proxy. $ Proxy1283.analyze (Неизвестный источник) [na: na] в xx.xxxx.xframe.xxx.common.log.txmon.CallbackHandler.call (CallbackHandler.java:110) [XXX.jar: na] в xx.xxxx.xframe.xxx.common.log.xxxx.CallbackHandler.call (CallbackHandler.java:33) [XXX.jar: na] at java.util.concurrent.FutureTask.run (FutureTask.java:274) [na: 1.7.0] в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1157) [na: 1.7.0] в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:627) [na: 1.7.0] at java.lang.Thread.run (Thread.java:809) [na: 1.7.0] Вызвано: com.ctc.wstx.exc.WstxIOException: com.ibm.jsse2.util.h: сбой построения пути PKIX: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl не удалось создать действительный CertPath .; Внутренняя причина: java.security.cert.CertPathValidatorException: сертификат, выданный CN = , O = ., C = IT не является доверенным; Внутренняя причина: java.security.cert.CertPathValidatorException: ошибка цепочки сертификатов на com.ctc.wstx.sw.BaseStreamWriter.flush (BaseStreamWriter.java:261) ~ [woodstox-core-asl-4.1.4.jar: 4.1.4] at org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor $ SAAJOutEndingInterceptor.handleMessage (SAAJOutInterceptor.java:213) ~ [cxf-rt-bindings-soap-2.7.3.jar: 2.7.3] ... 15 общих кадров пропущено Вызвано: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: сбой построения пути PKIX: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl не удалось создать действительный CertPath .; Внутренняя причина: java.security.cert.CertPathValidatorException: сертификат, выданный CN = , O = , C = IT не является доверенным; Внутренняя причина: java.security.cert.CertPathValidatorException: ошибка цепочки сертификатов на com.ibm.jsse2.k.a (k.java:24) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.rc.a (rc.java:19) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.bb.a (bb.java:308) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.bb.a (bb.java:338) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.cb.a (cb.java:558) ~ [na: 7.0 build_20170331]на com.ibm.jsse2.cb.a (cb.java:187) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.bb.t (bb.java:537) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.bb.a (bb.java:530) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.rc.a (rc.java:797) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.rc.h (rc.java:710) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.rc.a (rc.java:815) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.rc.startHandshake (rc.java:408) ~ [na: 7.0 build_20170331] на com.ibm.net.ssl.www2.protocol.https.c.afterConnect (c.java:142) ~ [na: 7.0 build_20170331] на com.ibm.net.ssl.www2.protocol.https.d.connect (d.java:4) ~ [na: 7.0 build_20170331] на sun.net.www.protocol.http.HttpURLConnection.getOutputStream (HttpURLConnection.java:1146) ~ [na: 1.7.0] на com.ibm.net.ssl.www2.protocol.https.b.getOutputStream (b.java:49) ~ [na: 7.0 build_20170331] at org.apache.cxf.transport.http.URLConnectionHTTPConduit $ URLConnectionWrappedOutputStream.setupWrappedStream (URLConnectionHTTPConduit.java:170) ~ [cxf-rt-transports-http-2.7.3.jar: 2.7 в org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.handleHeadersTrustCaching (HTTPConduit.java:1282) ~ [cxf-rt-transports-http-2.7.3.jar: 2.7.3] в org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.onFirstWrite (HTTPConduit.java:1233) ~ [cxf-rt-transports-http-2.7.3.jar: 2.7.3] at org.apache.cxf.transport.http.URLConnectionHTTPConduit $ URLConnectionWrappedOutputStream.onFirstWrite (URLConnectionHTTPConduit.java:183) ~ [cxf-rt-transports-http-2.7.3.jar: 2.7.3] в org.apache.cxf.io.AbstractWrappedOutputStream.write (AbstractWrappedOutputStream.java:47) ~ [cxf-api-2.7.3.jar: 2.7.3] at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer (AbstractThresholdOutputStream.java:89) ~ [cxf-api-2.7.3.jar: 2.7.3] at org.apache.cxf.io.AbstractThresholdOutputStream.write (AbstractThresholdOutputStream.java:63) ~ [cxf-api-2.7.3.jar: 2.7.3] на com.ctc.wstx.io.UTF8Writer.flush (UTF8Writer.java:100) ~ [woodstox-core-asl-4.1.4.jar: 4.1.4] на com.ctc.wstx.sw.BufferingXmlWriter.flush (BufferingXmlWriter.java:225) ~ [woodstox-core-asl-4.1.4.jar: 4.1.4] на com.ctc.wstx.sw.BaseStreamWriter.flush (BaseStreamWriter.java:259) ~ [woodstox-core-asl-4.1.4.jar: 4.1.4] ... 16 общих кадров опущено Вызвано: com.ibm.jsse2.util.h: не удалось создать путь PKIX: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl не удалось создать действительный CertPath .; Внутренняя причина: java.security.cert.CertPathValidatorException: сертификат, выданный CN = , O = , C = IT не является доверенным; Внутренняя причина: java.security.cert.CertPathValidatorException: ошибка цепочки сертификатов на com.ibm.jsse2.util.f.a (f.java:44) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.util.f.b (f.java:123) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.util.e.a (e.java:3) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.zc.a (zc.java:163) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.zc.a (zc.java:130) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.zc.checkServerTrusted (zc.java:40) ~ [na: 7.0 build_20170331] на com.ibm.jsse2.cb.a (cb.java:453) ~ [na: 7.0 build_20170331] ... 37 общих кадров пропущено Причина: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl не удалось создать допустимый CertPath. at com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild (PKIXCertPathBuilderImpl.java:410) ~ [na: 7.0 build_20170331] at java.security.cert.CertPathBuilder.build (CertPathBuilder.java:256) ~ [na: na] на com.ibm.jsse2.util.f.a (f.java:99) ~ [na: 7.0 build_20170331] ... пропущено 43 общих кадра Вызывается: java.security.cert.CertPathValidatorException: сертификат, выданный CN = , O = , C = IT не является доверенным на com.ibm.security.cert.BasicChecker. (BasicChecker.java:111) ~ [na: 7.0 build_20170331]at com.ibm.security.cert.PKIXCertPathValidatorImpl.engineValidate (PKIXCertPathValidatorImpl.java:176) ~ [na: 7.0 build_20170331] at com.ibm.security.cert.PKIXCertPathBuilderImpl.myValidator (PKIXCertPathBuilderImpl.java:737) ~ [na: 7.0 build_20170331] at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath (PKIXCertPathBuilderImpl.java:649) ~ [na: 7.0 build_20170331] at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath (PKIXCertPathBuilderImpl.java:595) ~ [na: 7.0 build_20170331] at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath (PKIXCertPathBuilderImpl.java:595) ~ [na: 7.0 build_20170331] at com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild (PKIXCertPathBuilderImpl.java:356) ~ [na: 7.0 build_20170331] ... пропущено 45 общих кадров Вызывается: java.security.cert.CertPathValidatorException: ошибка цепочки сертификатов в com.ibm.security.cert.CertPathUtil.findIssuer (CertPathUtil.java:316) ~ [na: 7.0 build_20170331] на com.ibm.security.cert.BasicChecker. (BasicChecker.java:108) ~ [na: 7.0 build_20170331] ... 51 общая рамка опущена

Пожалуйста, помогите мне понять, что я делаю неправильно ... Заранее спасибо

...