Hello everyone,

I use the following command to generate the keystore:

keytool –genkey –keystore SSLKey –keyalg rsa –alias SSL

And then I use the following codes to add SSL in the server side:


  String key = "mySrvKeystore"; 

  char keyStorePass[] = "123456789".toCharArray(); 

  char keyPassword[] = "123456789".toCharArray();

  KeyStore ks = KeyStore.getInstance("JKS"); 

  ks.load(new FileInputStream(key), keyStorePass);


  KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");

  kmf.init(ks, keyPassword);

  SSLContext sslContext = SSLContext.getInstance("SSLv3");

  sslContext.init(kmf.getKeyManagers(), null, null);

  SslFilter sslFilter = new SslFilter(sslContext);

  sslFilter.setUseClientMode(false);

  chain.addLast("sslFilter", sslFilter);
  System.out.println("SSL ON");


And in the client side I use the same code ,only change the clientmode:

sslFilter.setUseClientMode(true);


But I got the following execptions:
EXCEPTION: 

javax.net.ssl.SSLHandshakeException: SSL handshake failed.
 at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:426)
 at 
org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:405)
 at 
org.apache.mina.common.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:40)
 at 
org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:823)
 at 
org.apache.mina.common.DefaultIoFilterChain$HeadFilter.messageReceived(DefaultIoFilterChain.java:607)
 at 
org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:405)
 at 
org.apache.mina.common.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:399)
 at 
org.apache.mina.common.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:425)
 at 
org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:387)
 at 
org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:379)
 at 
org.apache.mina.common.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:43)
 at 
org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:678)
 at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
 at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
 at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
 at java.lang.Thread.run(Thread.java:619)
Caused by: javax.net.ssl.SSLException: Received close_notify during handshake
 at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
 at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1366)
 at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1334)
 at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1472)
 at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:967)
 at 
com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:793)
 at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:669)
 at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:607)
 at org.apache.mina.filter.ssl.SslHandler.unwrap0(SslHandler.java:644)
 at org.apache.mina.filter.ssl.SslHandler.unwrapHandshake(SslHandler.java:591)
 at org.apache.mina.filter.ssl.SslHandler.handshake(SslHandler.java:461)
 at org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:286)
 at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:407)
 ... 15 more


[INFO] 2008-04-18 12:03:42.546 pool-3-thread-2 
[test.ssl.GWHandler][78][test.ssl.GWHandler.exceptionCaught(GWHandler.java:148)]
exceptionCaught(IoSession, Throwable) - javax.net.ssl.SSLHandshakeException: 
SSL handshake failed.


Can Someone tell me how to solve the problem?

Thank you very much!

Steven

Reply via email to