Java - SSL

   
Vista:

SSL

Publicado por Jaume  (2 intervenciones) el 21/01/2009 00:42:54
Hola, soy inexperto en esto de la programación en java y tengo el siguiente problema:

Tengo que realizar un aplicación cliente-servidor eco con java. Pero tiene que ser una conexion SSL donde se deben autentificar tanto el servidor como el cliente. Mediante el keytool creo dos pares de keystores: 2 para el cliente (truststore con el certificado público del servidor y clientestore con la clave privada del cliente) y lo mismo para el servidor. Hasta aquí de momento bién.
Ahora a la hora de ejecutar los programas me sale esté error:
"Exception in thread "main" java.net.BindException: Permission denied"

A parte de este error me salen todo tipo de problemas, os paso el codigo del cliente y servidor y si me pudierais ayudar y decir-me lo que hago mal os lo agradeceria. La verdad es que soy muy novato en java y me entero de muy poco.

Aquí estan los códigos:

Servidor-------------------------------------------------------------------

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;

public class ServidorEco {

public static void main(String[] args) throws IOException {

System.setProperty("javax.net.ssl.keyStore","Servidor.keystore");
System.setProperty("javax.net.ssl.keyStorePassword","claveservidor");

SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
ServerSocket servidorSocket = ssf.createServerSocket(9999);

System.setProperty("javax.net.ssl.trustStore","trustServidor.keystore");

while (true) {
SSLSocket socket = (SSLSocket) servidorSocket.accept();

try {
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();

byte[] bytes = new byte[512];

int leidos;
while ((leidos = is.read(bytes)) != -1) {
os.write(bytes, 0, llegits);
}

is.close();
os.close();
socket.close();
} catch (IOException e) {
System.out.println("Error de conexión.");
}
}
}
}
---------------------------------------------------------------------------------


Cliente-----------------------------------------------------------------------

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;

public class ClienteEco {

public static void main(String[] args) throws IOException {

BufferedReader teclado =
new BufferedReader(new InputStreamReader(System.in));

System.setProperty("javax.net.ssl.keyStore","Client.keystore");
System.setProperty("javax.net.ssl.keyStorePassword","clavecliente");

System.setProperty("javax.net.ssl.trustStore","trustClient.keystore");

SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket clientesocket = (SSLSocket) ssf.createSocket("127.0.0.1", 9999);

BufferedReader leerServidor =
new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));

PrintWriter escribirServidor =
new PrintWriter(clientesocket.getOutputStream(),true);

for(int i=0; i<3; i++){
String linea = teclado.readLine();
escribirServidor.println(linea);

String linearecibida = llegirServidor.readLine();
System.out.println("Eco: "+linearecibida);
}

lleerServidor.close();
escribirServidor.close();
clientesocket.close();
}

}



---------------
Necesitaria si puede ser que me explicaseis los errores y la manera de solucionarlo y cualquier sugerencia de codigo para mejorar el programa. Muchas gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Java
- Código fuente de Java
- Cursos de Java
- Temas de Java
- Chat de Java
información
Códigos de Java
- Analizador Lexico
- Listador
- Juego 2048 con Java 8

RE:SSL

Publicado por Jaume  (2 intervenciones) el 27/01/2009 23:23:52
Buenas, veo que nadie me ha contestado a la pregunta.
Ya he solucionado estos problemas y me funciona la aplicación. Pero no se como hacer para que el cliente se certifique. Ya que en el protocolo ssl esta opción es opcional.
Otro problema es que me gustaria poder capturar el ssl handshake mediante la misma aplicación, sin usar ningún snnifer y no se como hacerlo.

A ver si alguien se anima, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SSL

Publicado por Silvia (1 intervención) el 10/01/2011 00:44:21
Hola!
Estoy realizando la misma practica y he llegado al mismo problema que tenias. Me gustaría saber, si es posible como lo has solucionado porque yo ya no se que tengo que hacer.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar