utiliza respuesta recomienda públicas propietario permitida opcion migrar las kit introduzca herramienta formato ejemplo desarrollo crear contraseña coinciden claves certificados certificado almacén almacen administración java keytool

java - respuesta - keytool opcion no permitida



Importe de forma programática el certificado de confianza de CA en el archivo de almacén de claves existente sin utilizar keytool (2)

Descargue certificados de los enlaces y almacénelos en una ruta específica ... luego cargue ese archivo en trustStore durante el tiempo de ejecución utilizando el siguiente código ... espero que este ejemplo le ayude ...

KeyStore keyStore = KeyStore.getInstance("JKS"); String fileName = "D://certs_path//cacerts"; // cerrtification file path System.setProperty("javax.net.ssl.trustStore", fileName);

Me gustaría crear un programa JAVA que importe la CA.cer en el archivo de almacén de claves existente. Para que el usuario final pueda insertar el certificado CA más conveniente (sin usar CMD y clave en el comando).

¿Es en cualquier lugar que el código JAVA puede hacer esto?

Intento de alguna manera, pero todavía no consigo obtener el certificado en Java

CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream certstream = fullStream (certfile); Certificate certs = cf.generateCertificates(certstream);

El error es de tipos incompatibles, ¿hay alguna otra sugerencia?

Muchas gracias


He resuelto la pregunta. Aquí está el código.

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.security.Key; import java.security.KeyStore; import java.security.cert.Certificate; import java.io.IOException; import java.io.InputStream; import java.io.DataInputStream; import java.io.ByteArrayInputStream; import java.security.spec.*; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.util.Collection; public class ImportCA { public static void main(String[] argv) throws Exception { String certfile = "yourcert.cer"; /*your cert path*/ FileInputStream is = new FileInputStream("yourKeyStore.keystore"); KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); keystore.load(is, "yourKeyStorePass".toCharArray()); String alias = "youralias"; char[] password = "yourKeyStorePass".toCharArray(); ////// CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream certstream = fullStream (certfile); Certificate certs = cf.generateCertificate(certstream); /// File keystoreFile = new File("yourKeyStorePass.keystore"); // Load the keystore contents FileInputStream in = new FileInputStream(keystoreFile); keystore.load(in, password); in.close(); // Add the certificate keystore.setCertificateEntry(alias, certs); // Save the new keystore contents FileOutputStream out = new FileOutputStream(keystoreFile); keystore.store(out, password); out.close(); } private static InputStream fullStream ( String fname ) throws IOException { FileInputStream fis = new FileInputStream(fname); DataInputStream dis = new DataInputStream(fis); byte[] bytes = new byte[dis.available()]; dis.readFully(bytes); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); return bais; } }

La esperanza puede ayudar a aquellas personas que lo necesitan. Es solo un código simple que inserta el archivo .cer certificado CA en su almacén de claves sin usar keytool en CMD =)