2009-02-09 24 views

Respuesta

3

Este chico() parece haber escrito un poco de clase Java y archivo por lotes con buenas instrucciones para hacer esto aquí: http://www.crionics.com/products/opensource/faq/signFree.htm#DownloadTools

Si desea hacerlo usted mismo las líneas clave en el archivo .bat parece haber utiliza

keytool -export -rfc -keystore %KEYSTORE% -storepass %PASSWORD% -alias %ALIAS% > %CERT_64% 
java -classpath %JAVACLASSPATH% ExportPrvKey %KEYSTORE% %PASSWORD% %ALIAS% > %PKEY_8% 
openssl enc -in %PKEY_8% -a >> %PKEY_64% 
openssl pkcs12 -inkey %PKEY_64% -in %CERT_64% -out %CERT_P12% -export 

donde ExportPrvKey realiza el paso de extraer la clave privada del almacén de claves.

+0

Gracias por la respuesta. También encontré el sitio que vinculó a través de Google y lo probé. Sin embargo, el último paso falla para mí. openssl termina con el mensaje: no se puede cargar la clave privada ¡Cualquier sugerencia adicional sería muy apreciada! –

+0

Eche un vistazo al archivo de clave privada (% PKEY_64%). ¿Realmente existe? Google parece que los errores más comunes son tenerlo en el directorio incorrecto o en un formato incorrecto. ¿Qué versión de openssl tienes? –

+0

El archivo PKEY_64 existe y se ve bien (contiene 858 caracteres ascii "aleatorios"). Estoy usando openssl 0.9.7d en un cuadro de Linux. –

40

De Java 6 en adelante, keytool tiene una opción -importkeystore, que debe ser capaz de convertir una tienda JKS en una tienda de PKCS # 12 (p.12/.pfx):

keytool -importkeystore -srckeystore thekeystore.jks \ 
      -srcstoretype JKS \ 
      -destkeystore thekeystore.pfx \ 
      -deststoretype PKCS12 
+0

Recibo estos errores cuando uso este comando: Problema al importar la entrada para alias root: java.security.KeyStoreException: TrustedCertEntry no es compatible. ¿Has visto eso? – mikebz

+0

@mikebz Sí, no puede tener entradas con solo certificados en la tienda PKCS # 12, solo funciona para las entradas para las que también hay una clave privada. – Bruno

-1

puede exportar un archivo PFX incluyendo clave privada, con el siguiente comando:

keytool -importkeystore -deststorepass secret -destkeypass secret -destkeystore KEYSTOREFILE.jks -srckeystore PFXFILE.pfx -srcstoretype PKCS12 -srcstorepass secret 
Cuestiones relacionadas