2017-08-31 85 views
0

我剛剛安裝了新版本的wso2-iot(3.1.0)。在wso2-IoT上更改IP和證書時出錯

我爲了遠程使用它,我用腳本/scripts/change-ip.sh將IP從本地主機改爲了我的服務器的IP地址。

一切似乎很好地工作,但是當我登錄到https://IP:9443/devicemgr,我得到的消息波紋管:

An Error Occurred! 
HTTP Status : 500 

org.wso2.carbon.apimgt.integration.client.exception.APIMClientOAuthException: failed to retrieve oauth token using jwt 

已經有人經歷了同樣的問題? 有沒有解決方案?

感謝


我試圖安裝WSO2-IOT的3個服務器:

  • 它可以在一個Debian 9.1 OpenJDK的版本 「1.8.0_141」
  • 我失敗在Debian的8.8與OpenJDK的版本 「1.8.0_141」
  • 它失敗的Debian 8.7的Java版本 「1.8.0_144」

回答

0

問題的一個原因是IoT_Home/conf/identity/identity-providers/iot_default.xml中沒有正確的證書。請確保正確添加。 原因可能是change-ip.sh腳本中的「sed -e」在某些linux操作系統版本上不起作用。

+0

感謝您的回答Geeth,但證書在conf/identity/identity-providers/iot_default.xml文件中是正確的。 –

0

當我運行io-server.sh腳本,我得到了Java消息波紋管

[2017-09-04 09:25:05,244] [IoT-Core] INFO - {org.wso2.carbon.ui.internal.CarbonUIServiceComponent} Mgt Console URL : https://10.5.0.68:9443/carbon/ 
[2017-09-04 09:25:11,654] [IoT-Core] ERROR - {org.apache.synapse.transport.passthru.TargetHandler} I/O error: Host name verification failed for host : ducky.domaine-mairie.lan 
javax.net.ssl.SSLException: Host name verification failed for host : ducky.domaine-mairie.lan 
    at org.apache.synapse.transport.http.conn.ClientSSLSetupHandler.verify(ClientSSLSetupHandler.java:171) 
    at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:308) 
    at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:410) 
    at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119) 
    at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159) 
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338) 
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316) 
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277) 
    at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105) 
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586) 
    at java.lang.Thread.run(Thread.java:748) 
[2017-09-04 09:25:11,726] [IoT-Core] WARN - {org.apache.synapse.endpoints.EndpointContext} Endpoint : AnonymousEndpoint with address https://{uri.var.hostname}:{uri.var.portnum}/oauth2/token will be marked SUSPENDED as it failed 
[2017-09-04 09:25:11,728] [IoT-Core] WARN - {org.apache.synapse.endpoints.EndpointContext} Suspending endpoint : AnonymousEndpoint with address https://{uri.var.hostname}:{uri.var.portnum}/oauth2/token - current suspend duration is : 30000ms - Next retry after : Mon Sep 04 09:25:41 CEST 2017 
Exception in thread "Thread-36" org.wso2.carbon.apimgt.integration.client.exception.APIMClientOAuthException: failed to retrieve oauth token using jwt 
    at org.wso2.carbon.apimgt.integration.client.OAuthRequestInterceptor.apply(OAuthRequestInterceptor.java:118) 
    at feign.SynchronousMethodHandler.targetRequest(SynchronousMethodHandler.java:158) 
    at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:88) 
    at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76) 
    at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103) 
    at com.sun.proxy.$Proxy40.apisGet(Unknown Source) 
    at org.wso2.carbon.apimgt.webapp.publisher.APIPublisherServiceImpl.publishAPI(APIPublisherServiceImpl.java:53) 
    at org.wso2.carbon.apimgt.webapp.publisher.APIPublisherStartupHandler.publishAPIs(APIPublisherStartupHandler.java:97) 
    at org.wso2.carbon.apimgt.webapp.publisher.APIPublisherStartupHandler.access$500(APIPublisherStartupHandler.java:30) 
    at org.wso2.carbon.apimgt.webapp.publisher.APIPublisherStartupHandler$1.run(APIPublisherStartupHandler.java:69) 
    at java.lang.Thread.run(Thread.java:748) 
Caused by: org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException: Error when parsing the response <am:fault xmlns:am="http://wso2.org/apimanager"><am:code>101500</am:code><am:type>Status report</am:type><am:message>Runtime Error</am:message><am:description>Error in Sender</am:description></am:fault> 
    at org.wso2.carbon.identity.jwt.client.extension.JWTClient.getTokenInfo(JWTClient.java:169) 
    at org.wso2.carbon.identity.jwt.client.extension.JWTClient.getAccessToken(JWTClient.java:79) 
    at org.wso2.carbon.apimgt.integration.client.OAuthRequestInterceptor.apply(OAuthRequestInterceptor.java:99) 
    ... 10 more 
Caused by: Unexpected character (<) at position 0. 
    at org.json.simple.parser.Yylex.yylex(Unknown Source) 
    at org.json.simple.parser.JSONParser.nextToken(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at org.wso2.carbon.identity.jwt.client.extension.JWTClient.getTokenInfo(JWTClient.java:153) 
    ... 12 more 

其中10.5.0.68是我的服務器和ducky.domaine-mairie.lan的名字的IP服務器。顯然,該腳本嘗試使用DNS名稱而不是IP。 我希望這將有助於決議。

+0

我更改/change-ip.sh腳本中的enterred值,用DNS替換IP。現在物聯網服務運行良好。 –

0

change-ip.sh是不是我的口味最終確定。有一個缺乏信息

0

類似的問題是可以在/ etc/hosts文件是有指向本機IP的主機名條目討論here

的原因之一問題。甚至IP指向localhost可能導致此問題。 這是在驗證證書的通用名稱時發生的,它指向一個主機名。由於證書的公用名稱是本地IP(由change-ip.sh腳本創建),並且當從具有相同IP的/ etc/hosts文件中找到主機名時,將導致主機名稱驗證失敗。這將導致上述問題,無法檢索JWT令牌。報告了類似的問題here