Criar conexão segura

3 respostas
J

Olá, eu estou desenvolvendo uma aplicação onde eu preciso criar um canal de comunicação seguro entre duas máquinas, eu estou tentando usar o JSSE, mas sempre dá o seguinte erro :

javax.net.ssl.SSLException: No available certificate corresponds to the SSL cipher suites which are enabled.

at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.a(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(Unknown Source)

at SecureServer.main(SecureServer.java:32)

Eu não consegui identificar o por que do erro, será que alguém pode me ajudar …

Desde já agradeço

johnny

3 Respostas

R

Daí,

Essa exceção normalmente acontece quando tu tás iniciando uma conexão. Isso quer dizer que objeto de socket ou do server socket não tem nenhum certificado, ou os certificados não são do tipo certo, que possam ser usados quando for iniciar a comunicação ou o listening da porta especificada. Pra resolver isso, é só tu garantires que o arquivo de keystore tá sendo carregado corretamente, ou seja, o keystore que tu queres usar, e que o contexto é inicializado com o conjunto certo de KeyManagers e TrustManagers.

Tive olhando na net e achei isso aqui, sente só:

Se tu vais usar uma SSLServerSocketFactory defaul e criares um socket, tu vais precisar de um cipher suite anônimo instalado. Por exemplo:
final SSLServerSocketFactory sslSocketFactory = 
    (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
final SSLServerSocket sslServerSocket = 
    (SSLServerSocket)sslSocketFactory.createServerSocket(port);

// use um cipher suite anônima pra que o KeyManager ou o TrustManager
// não seja necessária.
// OBS:  Isso presume que se saiba qual é o cipher suite. Verifique -antes-

final String[] enabledCipherSuites = { "SSL_DH_anon_WITH_RC4_128_MD5" };
sslServerSocket.setEnabledCipherSuites(enabledCipherSuites);
E a menos que tu faças o mesmo no lado do cliente, tu vais receber a seguinte mensagem:
javax.net.ssl.SSLHandshakeException: no cipher suites in common
javax.net.ssl.SSLHandshakeException: 
    Received fatal alert: handshake_failure

Achei aqui

[]s

J

Valeu renato, eu vou tentar novamente …

Johnny

T

Achei esse artigo sobre segurança em java que mostra algo sobre SSLSocket. O link direto para a parte que fala sobre esta abaixo. Tem tambem uma sessão dedicada a segurança em java nessa pagina.

http://www.onjava.com/pub/a/onjava/2003/12/10/javavsdotnet.html?page=2

Espero que ajude. flw.

Criado 28 de abril de 2005
Ultima resposta 2 de mai. de 2005
Respostas 3
Participantes 3