Java - Uso de KeyStore, y Certificados

 
Vista:

Uso de KeyStore, y Certificados

Publicado por Pepe (2 intervenciones) el 18/03/2009 18:19:50
HOLA!

Soy un novato de acuerdo con la libreria JCE, y ahora tengo que utilizar la clase KeyStore, mi problema es principalmente que cuando tengo que establecer una clave (setKeyEntry), necesito un certificado de confianza (trusted Certificate) para garantizar la validez de la PrivateKey que quiero añadir al KeyStore. En primer lugar, ¿cómo puedo crear un certificado de confianza sin necesidad de utilizar "keytool". Necesito un código Java. Aunque me puse a buscar mucho sobre ello, solo encuentro ejemplos de "keytool".

Muchas Gracias.
Saludos.
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

RE:Uso de KeyStore, y Certificados

Publicado por Jacinto Obispo (3 intervenciones) el 31/03/2009 11:04:26
Hola Pepe.

La verdad no entiendo del que es lo que quieres hacer, pero a ver si esto te ayuda. Lo primero que SetKeyEntry claro que te pide un certificado de confianza, porque precisamente eso es lo que hace este metodo.

El certificado de confianza, imagino que en tu caso será la public key. Si así fuera, solo tienes que solicitarla al servidor, me explico, o tienes esta clave publica en un archivo formato .cer o te la envian por el socket previamente. Una vez que tienes la clave privada, extraes de esta última el certificado y ese certificado es el que puedes colocar en el keystore. En el lado del servidor simplemente creas un conjunto de claves privada/publica con keytool y lo mantienes aceesible y a salvo.

A ver si te vale de algo este codigo, sino mandame un e-mail con lo que no te cuadra o necesites.

//Este el el archivo donde reside la clave publica
FileInputStream cer = new FileInputStream("nombre_y_ruta_del_archivo");


CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate MADcer = cf.generateCertificate(cer);

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

char[] password = "nolase01".toCharArray();
ks.load(null);
ks.setCertificateEntry("MADLOGIC", MADcer);
FileOutputStream outcer = new FileOutputStream(".\MADLOGIC.truststore");
ks.store(outcer, password);
outcer.close();
if(!Initialized) PromoteSSL();
return true;
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:Uso de KeyStore, y Certificados

Publicado por Jacinto Obispo (3 intervenciones) el 31/03/2009 11:04:27
Hola Pepe.

La verdad no entiendo del que es lo que quieres hacer, pero a ver si esto te ayuda. Lo primero que SetKeyEntry claro que te pide un certificado de confianza, porque precisamente eso es lo que hace este metodo.

El certificado de confianza, imagino que en tu caso será la public key. Si así fuera, solo tienes que solicitarla al servidor, me explico, o tienes esta clave publica en un archivo formato .cer o te la envian por el socket previamente. Una vez que tienes la clave privada, extraes de esta última el certificado y ese certificado es el que puedes colocar en el keystore. En el lado del servidor simplemente creas un conjunto de claves privada/publica con keytool y lo mantienes aceesible y a salvo.

A ver si te vale de algo este codigo, sino mandame un e-mail con lo que no te cuadra o necesites.

//Este el el archivo donde reside la clave publica
FileInputStream cer = new FileInputStream("nombre_y_ruta_del_archivo");


CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate MADcer = cf.generateCertificate(cer);

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

char[] password = "nolase01".toCharArray();
ks.load(null);
ks.setCertificateEntry("MADLOGIC", MADcer);
FileOutputStream outcer = new FileOutputStream(".\MADLOGIC.truststore");
ks.store(outcer, password);
outcer.close();
if(!Initialized) PromoteSSL();
return true;
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:Uso de KeyStore, y Certificados

Publicado por Jacinto Obispo (3 intervenciones) el 31/03/2009 11:04:27
Hola Pepe.

La verdad no entiendo del que es lo que quieres hacer, pero a ver si esto te ayuda. Lo primero que SetKeyEntry claro que te pide un certificado de confianza, porque precisamente eso es lo que hace este metodo.

El certificado de confianza, imagino que en tu caso será la public key. Si así fuera, solo tienes que solicitarla al servidor, me explico, o tienes esta clave publica en un archivo formato .cer o te la envian por el socket previamente. Una vez que tienes la clave privada, extraes de esta última el certificado y ese certificado es el que puedes colocar en el keystore. En el lado del servidor simplemente creas un conjunto de claves privada/publica con keytool y lo mantienes aceesible y a salvo.

A ver si te vale de algo este codigo, sino mandame un e-mail con lo que no te cuadra o necesites.

//Este el el archivo donde reside la clave publica
FileInputStream cer = new FileInputStream("nombre_y_ruta_del_archivo");


CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate MADcer = cf.generateCertificate(cer);

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

char[] password = "nolase01".toCharArray();
ks.load(null);
ks.setCertificateEntry("MADLOGIC", MADcer);
FileOutputStream outcer = new FileOutputStream(".\MADLOGIC.truststore");
ks.store(outcer, password);
outcer.close();
if(!Initialized) PromoteSSL();
return true;
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