You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by balazsv <cy...@dccafe.org> on 2007/10/29 03:21:23 UTC

SSL client connection problem

Hi!

I have a client-server application. And i configured the server with MINA
1.1.3 (SSL support). That works fine (I tested this with other, non-java
client). I'll create a client application, but the client can't connect to
server. I get this exception only:

javax.net.ssl.SSLHandshakeException: Initial SSL handshake failed.
        at
org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:416)
        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
        at
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:647)
        at
org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
        at
org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: javax.net.ssl.SSLException: Received close_notify during
handshake
        at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
        at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1352)
        at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1320)
        at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1458)
        at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:957)
        at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:782)
        at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:674)
        at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:566)
        at
org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:636)
        at
org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:488)
        at
org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:306)
        at
org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392)
        ... 8 more

I get this after close client application. I think that my client is wrong
(the handshake is forzen). This is the client SSL init function:

String keyStore = properties.get("keystore");
String keyStorePass = properties.get("passphrase");

KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream(keyStore), keyStorePass
		.toCharArray());

TrustManagerFactory trustManager = TrustManagerFactory
		.getInstance("SunX509");
trustManager.init(keystore);

KeyManagerFactory keyManager = KeyManagerFactory
		.getInstance("SunX509");
keyManager.init(keystore, keyStorePass.toCharArray());

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManager.getKeyManagers(), trustManager
		.getTrustManagers(), null);

SSLFilter sslFilter = new SSLFilter(sslContext);
config.getFilterChain().addLast("SSL", sslFilter);

System.out.println("Secure connection supported...");

If i run this client and server without SSL, these are work fine. Please,
help me! Thanks!
-- 
View this message in context: http://www.nabble.com/SSL-client-connection-problem-tf4709237s16868.html#a13460593
Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.


Re: SSL client connection problem

Posted by balazsv <cy...@dccafe.org>.
Bah... No, i didn't.

I put the only one line to my code and it works fine. Thank you for the very
quick reply.

I ♥ MINA :)


Trustin Lee wrote:
> 
> On 10/29/07, balazsv <cy...@dccafe.org> wrote:
>>
>> Hi!
>>
>> I have a client-server application. And i configured the server with MINA
>> 1.1.3 (SSL support). That works fine (I tested this with other, non-java
>> client). I'll create a client application, but the client can't connect
>> to
>> server. I get this exception only:
>>
>> javax.net.ssl.SSLHandshakeException: Initial SSL handshake failed.
>>         at
>> org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:416)
>>         at
>> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
>>         at
>> org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
>>         at
>> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:647)
>>         at
>> org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
>>         at
>> org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>         at java.lang.Thread.run(Thread.java:595)
>> Caused by: javax.net.ssl.SSLException: Received close_notify during
>> handshake
>>         at
>> com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
>>         at
>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1352)
>>         at
>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1320)
>>         at
>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1458)
>>         at
>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:957)
>>         at
>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:782)
>>         at
>> com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:674)
>>         at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:566)
>>         at
>> org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:636)
>>         at
>> org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:488)
>>         at
>> org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:306)
>>         at
>> org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392)
>>         ... 8 more
>>
>> I get this after close client application. I think that my client is
>> wrong
>> (the handshake is forzen). This is the client SSL init function:
>>
>> String keyStore = properties.get("keystore");
>> String keyStorePass = properties.get("passphrase");
>>
>> KeyStore keystore = KeyStore.getInstance("JKS");
>> keystore.load(new FileInputStream(keyStore), keyStorePass
>>                 .toCharArray());
>>
>> TrustManagerFactory trustManager = TrustManagerFactory
>>                 .getInstance("SunX509");
>> trustManager.init(keystore);
>>
>> KeyManagerFactory keyManager = KeyManagerFactory
>>                 .getInstance("SunX509");
>> keyManager.init(keystore, keyStorePass.toCharArray());
>>
>> SSLContext sslContext = SSLContext.getInstance("TLS");
>> sslContext.init(keyManager.getKeyManagers(), trustManager
>>                 .getTrustManagers(), null);
>>
>> SSLFilter sslFilter = new SSLFilter(sslContext);
>> config.getFilterChain().addLast("SSL", sslFilter);
>>
>> System.out.println("Secure connection supported...");
>>
>> If i run this client and server without SSL, these are work fine. Please,
>> help me! Thanks!
> 
> Did you call SSLFilter.setClientMode(true)?
> 
> HTH,
> Trustin
> -- 
> what we call human nature is actually human habit
> --
> http://gleamynode.net/
> --
> PGP Key ID: 0x0255ECA6
> 
> 

-- 
View this message in context: http://www.nabble.com/SSL-client-connection-problem-tf4709237s16868.html#a13460683
Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.


Re: SSL client connection problem

Posted by Trustin Lee <tr...@gmail.com>.
On 10/29/07, balazsv <cy...@dccafe.org> wrote:
>
> Hi!
>
> I have a client-server application. And i configured the server with MINA
> 1.1.3 (SSL support). That works fine (I tested this with other, non-java
> client). I'll create a client application, but the client can't connect to
> server. I get this exception only:
>
> javax.net.ssl.SSLHandshakeException: Initial SSL handshake failed.
>         at
> org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:416)
>         at
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
>         at
> org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
>         at
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:647)
>         at
> org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
>         at
> org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: javax.net.ssl.SSLException: Received close_notify during
> handshake
>         at
> com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
>         at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1352)
>         at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1320)
>         at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1458)
>         at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:957)
>         at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:782)
>         at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:674)
>         at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:566)
>         at
> org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:636)
>         at
> org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:488)
>         at
> org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:306)
>         at
> org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392)
>         ... 8 more
>
> I get this after close client application. I think that my client is wrong
> (the handshake is forzen). This is the client SSL init function:
>
> String keyStore = properties.get("keystore");
> String keyStorePass = properties.get("passphrase");
>
> KeyStore keystore = KeyStore.getInstance("JKS");
> keystore.load(new FileInputStream(keyStore), keyStorePass
>                 .toCharArray());
>
> TrustManagerFactory trustManager = TrustManagerFactory
>                 .getInstance("SunX509");
> trustManager.init(keystore);
>
> KeyManagerFactory keyManager = KeyManagerFactory
>                 .getInstance("SunX509");
> keyManager.init(keystore, keyStorePass.toCharArray());
>
> SSLContext sslContext = SSLContext.getInstance("TLS");
> sslContext.init(keyManager.getKeyManagers(), trustManager
>                 .getTrustManagers(), null);
>
> SSLFilter sslFilter = new SSLFilter(sslContext);
> config.getFilterChain().addLast("SSL", sslFilter);
>
> System.out.println("Secure connection supported...");
>
> If i run this client and server without SSL, these are work fine. Please,
> help me! Thanks!

Did you call SSLFilter.setClientMode(true)?

HTH,
Trustin
-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6