HTTP-адаптер IBM Worklight 6.2.0.01 не смог прочитать XML с веб-сайта с помощью HTTPS

У меня есть http-адаптер, который извлекает файл XML с веб-сайта через HTTPS. SSL-сертификат является реальным и действительным сертификатом, а не самоподписанным. Раньше все было нормально и работало больше года.

Недавно я обновился до Worklight 6.2.0.01.20150129-1911, и теперь адаптер не работает.

Ошибка Worklight Server выглядит следующим образом:

FWLSE0101E: Caused by:  [project MobileApp5062]javax.net.ssl.SSLPeerUnverifiedException: peer not authenticatedjava.lang.RuntimeException: Http request failed: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at com.worklight.adapters.http.HTTPConnectionManager.execute(HTTPConnectionManager.java:233)
    at com.worklight.adapters.http.HttpClientContext.doExecute(HttpClientContext.java:185)
    at com.worklight.adapters.http.HttpClientContext.execute(HttpClientContext.java:169)
    at com.worklight.adapters.http.HTTP.execRequest(HTTP.java:148)
    at com.worklight.adapters.http.HTTP.invoke(HTTP.java:137)
    at com.worklight.integration.model.ProcedureInvoker.invokeProcedure(ProcedureInvoker.java:57)
    at com.worklight.integration.model.Procedure.invoke(Procedure.java:166)
    at com.worklight.integration.model.InvocationContext.call(InvocationContext.java:169)
    at com.worklight.integration.model.InvocationContext.call(InvocationContext.java:38)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at com.worklight.integration.model.InvocationContext$DirectExecutorService.execute(InvocationContext.java:284)
    at java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
    at com.worklight.integration.model.InvocationContext.submit(InvocationContext.java:138)
    at com.worklight.integration.model.InvocationContextManager.submitInvocation(InvocationContextManager.java:58)
    at com.worklight.integration.services.impl.DataAccessServiceImpl.callProcedure(DataAccessServiceImpl.java:522)
    at com.worklight.integration.services.impl.DataAccessServiceImpl.access$100(DataAccessServiceImpl.java:61)
    at com.worklight.integration.services.impl.DataAccessServiceImpl$3.execute(DataAccessServiceImpl.java:417)
    at com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:76)
    at com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedureInternal(DataAccessServiceImpl.java:414)
    at com.worklight.integration.services.impl.DataAccessServiceImpl.invokeDynamicProcedure(DataAccessServiceImpl.java:481)
    at com.worklight.integration.services.impl.DataAccessServiceImpl.invokeDynamicProcedureWithEnclosingProcedureProperties(DataAccessServiceImpl.java:465)
    at com.worklight.integration.js.JavaScriptIntegrationLibraryImplementation.invokeDynamicProcedureWithEnclosingProcedureProperties(JavaScriptIntegrationLibraryImplementation.java:142)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
    at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
    at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
    at org.mozilla.javascript.gen._integration_js_12._c_anonymous_10(/integration.js:95)
    at org.mozilla.javascript.gen._integration_js_12.call(/integration.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
    at org.mozilla.javascript.gen.RateAdapter_impl_js_20._c_getRateData_3(RateAdapter-impl.js:66)
    at org.mozilla.javascript.gen.RateAdapter_impl_js_20.call(RateAdapter-impl.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.mozilla.javascript.gen.RateAdapter_impl_js_20.call(RateAdapter-impl.js)
    at com.worklight.integration.js.JavaScriptManager.callFunction(JavaScriptManager.java:240)
    at com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:214)
    at com.worklight.integration.js.JavaScriptManager.invokeFunction(JavaScriptManager.java:194)
    at com.worklight.integration.services.impl.AdapterManagerImpl.invokeFunction(AdapterManagerImpl.java:117)
    at com.worklight.integration.js.JavaScriptProcedureInvoker.invoke(JavaScriptProcedureInvoker.java:42)
    at com.worklight.integration.model.ProcedureInvoker.invokeProcedure(ProcedureInvoker.java:57)
    at com.worklight.integration.model.Procedure.invoke(Procedure.java:166)
    at com.worklight.integration.model.InvocationContext.call(InvocationContext.java:169)
    at com.worklight.integration.model.InvocationContext.call(InvocationContext.java:38)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at com.worklight.server.util.ProjectLocal$1RunnableWrapper.run(ProjectLocal.java:261)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at sun.security.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at com.worklight.adapters.http.HTTPConnectionManager.execute(HTTPConnectionManager.java:231)
    ... 50 more

Я тестировал адаптер с двумя разными хостами, один из которых имел действительный сертификат SSL, выданный VeriSign (IIS), а другой хост имел действительный сертификат SSL, выданный Starcom (Apache). Оба потерпели неудачу.

Дополнить в соответствии с комментарием Идана

  1. Проблема произошла как в локальной среде разработки со студией Worklight, так и в сервере UAT, на обоих работает одна и та же версия сервера WL.

  2. Веб-сервер и сервер Worklight размещены на разных серверах. Не на той же машине.


person deadcode    schedule 23.04.2015    source источник
comment
Две вещи: 1) выполните обновление до последней доступной версии iFix от IBM Fix Central (апрель 2015 г.). 2) Проверьте конфигурацию своего сертификата на сервере Worklight: www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/   -  person Idan Adar    schedule 23.04.2015
comment
Также укажите, тестируется ли это на удаленном сервере (если да, то какова конфигурация сервера приложений) или на сервере разработки в Eclipse.   -  person Idan Adar    schedule 23.04.2015


Ответы (1)


Вы не объясняете в вопросе, как был настроен сертификат на стороне сервера. Возможно, срок действия конфигурации сертификата истекает через 365 дней (1 год).

Ниже приведены разделы пользовательской документации по Worklight 6.2, которые вы должны внимательно прочитать, а затем посмотреть, нужно ли вам настроить свой сертификат:

person Idan Adar    schedule 23.04.2015
comment
Срок действия проверяемого сертификата не истек. Я изучаю предоставленные ссылки и буду обновлять их здесь. Спасибо Идан. - person deadcode; 23.04.2015
comment
Я не говорю, что срок действия сертификата истек, но что установка была установлена ​​на 1 год. - person Idan Adar; 23.04.2015