ВведениеSoapFault: Нет доверенные сертификаты не найдено
Я работаю на функции для системы учета, которая принимает XML-файл, содержащий данные о продаже, отправляет его на правительственный сервер и получает ответное сообщение , Вам также нужны некоторые сертификаты для обеспечения подлинности отправителей. Я использую клиента от кого-то другого, чтобы выполнить всю сложную работу по шифрованию, вызвать веб-сервис, обрабатывать сертификаты, получать сообщения и т. Д. Мне нужно написать простое приложение, чтобы вызвать функцию этого клиента и отправить ему файл, certs и некоторые аргументы.
Ошибка
Мое приложение, как представляется, работает нормально при тестировании на сервере игровых площадок. Однако, когда я попробовал производственный сервер с производственным сообщением (даже производственные сообщения на производственных серверах не рассматриваются как фактические законные продажи до 1 декабря 2016 года, они только начинают это делать), приложение выдает ошибку, что крайне странно , так как у любых разработчиков, разрабатывающих подобное приложение позднее, не будет возможности обнаружить эту ошибку, пока они не выпустят приложение.
Проблема
Проблема заключается в том, что ошибка указывает на то в библиотеках шифрования/защиты клиента. Я никогда не занимался чем-то подобным, поэтому я абсолютно потерял то, с чего начать искать. Кроме того, ошибка кажется довольно редкой, и несколько заметок, которые я нашел на ней, в значительной степени не имеют отношения к моему проекту, или, по крайней мере, так они кажутся мне, учитывая мое несуществующее понимание области.
Ниже приведен стек. Если бы кто-нибудь, более разбирающийся в этих библиотеках, мог указать мне, где может быть ошибка, я был бы очень благодарен. Пожалуйста, спросите, нужна ли вам дополнительная информация/тестирование.
WARNING: Interceptor for {http://fs.mfcr.cz/eet/schema/v3}EETService#{http://fs.mfcr.cz/eet/schema/v3}OdeslaniTrzby has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error during certificate path validation: No trusted certs found
at org.apache.cxf.ws.security.wss4j.WSS4JUtils.createSoapFault(WSS4JUtils.java:277)
at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:333)
at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:190)
at cz.tomasdvorak.eet.client.security.SecureEETCommunication$1.handleMessage(SecureEETCommunication.java:135)
at cz.tomasdvorak.eet.client.security.SecureEETCommunication$1.handleMessage(SecureEETCommunication.java:119)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:802)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1673)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)
at com.sun.proxy.$Proxy70.odeslaniTrzby(Unknown Source)
at cz.tomasdvorak.eet.client.EETClientImpl.submitReceipt(EETClientImpl.java:39)
at cz.tomasdvorak.eetdemo.Main.main(Main.java:134)
Caused by: org.apache.wss4j.common.ext.WSSecurityException: Error during certificate path validation: No trusted certs found
at org.apache.wss4j.common.crypto.Merlin.verifyTrust(Merlin.java:877)
at cz.tomasdvorak.eet.client.security.MerlinWithCRLDistributionPointsExtension.verifyTrust(MerlinWithCRLDistributionPointsExtension.java:34)
at org.apache.wss4j.dom.validate.SignatureTrustValidator.verifyTrustInCerts(SignatureTrustValidator.java:108)
at org.apache.wss4j.dom.validate.SignatureTrustValidator.validate(SignatureTrustValidator.java:64)
at org.apache.wss4j.dom.processor.SignatureProcessor.handleToken(SignatureProcessor.java:185)
at org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:428)
at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:278)
... 23 more