2016-07-11 3 views
0

WSO2 API 관리자 (V1.10)를 사용하여 API를 게시 한 후 client-truststore.jks에 SSL 인증서를 가져 왔습니다. 나는이 API를 호출 할 때, 나는이 오류 왔는지 해요 :WSO2 API 관리자 치명적인 경고 수신 : handshake_failure

2016-07-11 11:42:11,296 [-] [HTTPS-Sender I/O dispatcher-7] ERROR TargetHandler I/O error: Received fatal alert: handshake_failure 
javax.net.ssl.SSLException: Received fatal alert: handshake_failure 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) 
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1650) 
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1618) 
at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1787) 
at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1071) 
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:893) 
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:767) 
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624) 
at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:228) 
at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:263) 
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:391) 
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:745) 
+1

client-truststore.jks로 인증서를 가져온 것은 무엇을 의미합니까? API에 다른 SSL 인증서가 있습니까? 이 경우 client-trustore 및 wso2carbon.jks로 인증서를 가져온 다음 API를 호출하는 데 사용중인 클라이언트의 인증서를 사용해야합니다. 또한 인증서의 호스트 이름을 확인하십시오. 이 예외는 인증서 및 요청 URI의 호스트 이름의 차이로 인해 발생할 수 있습니다. –

답변

1

내가 당신의 API는 API 서버의 인증서가없는 클라이언트 프로그램을 호출 생각한다. 이 API를 호출 할 때,이 WSO2 서버의 인증서가

But When I call this API, I 'm receving this error: 

수입받을 (예를 들어, 자바를) 클라이언트 프로그램을 호출이 API를 않았다 (일반적으로 당신은 당신의 JRE의 jacerts에 인증서를 가져 오거나 다른 신뢰 저장소)? 이것은 귀하의 문제를 해결할 수 있습니다.

1

오류 로그에 따르면 http 송신자에서 발생합니다. API 관리자가 백엔드를 호출 할 때 백엔드가 "HTTPS"인 경우 공개 인증서를 APIM의 trustore로 가져와야합니다.

0

Java 1.7에 같은 문제가있었습니다. Java 1.8가 내 문제를 해결했습니다.