Saltar al contenido

¿Cómo importar un certificado .cer en un almacén de claves de Java?

Recuerda que en las ciencias informáticas cualquier problema suele tener diferentes soluciones, por lo tanto nosotros mostramos lo más óptimo y eficiente.

Solución:

  • Si desea autenticarse necesita el privado key – No hay otra opción.
  • Un certificado es público. key con propiedades adicionales (como nombre de la empresa, país,…) que está firmado por alguna autoridad de certificación que garantiza que las propiedades adjuntas son true.
  • .CER los archivos son certificados y no tienen la privacidad key. Lo privado key está provisto de un .PFX keystore archivo normalmente. Si realmente te autentificas es porque ya tenia importado el privado key.
  • Normalmente puede importar .CER certificados sin ningún problema con

    keytool -importcert -file certificate.cer -keystore keystore.jks -alias "Alias" 
    

Importador .cer archivo de certificado descargado del navegador (abra la url y busque detalles) en cacerts almacén de claves en java_homejrelibsecurity funcionó para mí, a diferencia de los intentos de generar y usar mi propio almacén de claves.

  1. Ir a tu java_homejrelibsecurity
  2. (ventanas) Abra la línea de comando de administración allí usando cmd y CONTROL+CAMBIO+INGRESAR
  3. Ejecute keytool para importar el certificado:
    • (Reemplazar yourAliasName y pathtocertificate.cer respectivamente)
 ....binkeytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias yourAliasName -file pathtocertificate.cer

De esta manera, no tiene que especificar ninguna opción JVM adicional y el JRE debería reconocer el certificado.

Aquí está el código que he estado usando para importar archivos .cer programáticamente a un nuevo KeyStore.

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
//VERY IMPORTANT.  SOME OF THESE EXIST IN MORE THAN ONE PACKAGE!
import java.security.GeneralSecurityException;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;

//Put everything after here in your function.
KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null);//Make an empty store
InputStream fis = /* insert your file path here */;
BufferedInputStream bis = new BufferedInputStream(fis);

CertificateFactory cf = CertificateFactory.getInstance("X.509");

while (bis.available() > 0) 
    Certificate cert = cf.generateCertificate(bis);
    trustStore.setCertificateEntry("fiddler"+bis.available(), cert);

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *