2016-07-11 91 views
0

使用WSO2 API Manager(V1.10),我发布了一个API,并将SSL证书导入到client-truststore.jks。但是当我打电话给这个API,我收到这个错误:WSO2 API Manager收到致命警报: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证书吗?在这种情况下,您必须将证书导入到客户机委托信任和wso2carbon.jks中,然后在您用于调用API的客户机中使用证书。另请检查证书中的主机名。由于证书和请求URI中的主机名不同,可能会发生此异常。 –

回答

1

我怀疑你的API调用客户端程序没有API服务器的证书。 (通常您导入证书到你的JRE的jacerts或其他信托商店)

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

当你调用这个API,没有这个API调用的客户端程序(Java的,例如)也得到这个WSO2服务器的证书导入?这可能会解决您的问题。

1

根据错误日志,这发生在http发件人。即当api经理调用后端时。如果您的后端是“HTTPS”,则需要将其公共证书导入到APIM的信任列表中

0

Java 1.7中出现同样的问题。 Java 1.8已解决我的问题

相关问题