openssl - generate - Convertir la clave privada tradicional PEM en clave privada PKCS8
openssl req (2)
Me dieron un archivo PEM con un certificado y claves de pub / privadas. Concretamente incluye los encabezados.
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
en ese orden especifico
Mi entendimiento es sin un encabezado que sigue al encabezado BEGIN RSA PRIVATE KEY
que este archivo pem contiene una clave privada en el formato tradicional (PKCS1) sin cifrado.
Necesito convertir esta clave privada a un formato PKCS8 no cifrado con DER codificado para usar con el código del servidor java, específicamente PKCS8EncodedKeySpec. He intentado OpenSSL, ambos con comandos rsa y pkcs8, pero sin suerte. No hay necesidad específica de usar openssl si hay algo más fácil.
Específicamente:
openssl rsa -in IServer_Key.orig.prikey.pem -out IServer_Key.pkcs8.pem
openssl rsa -in IServer_Key.orig.prikey.pem -out IServer_Key.pkcs8.pem -pubin openssl pkcs8 -in IServer_Key.orig.prikey.pem -out IServer_Key.pkcs8.pem -nocrypt
También he intentado especificar el informe y el rendimiento sin éxito.
user@ubuntu:~/TestCerts$ openssl rsa -in IServer_Key.pem -out IServer_Key.pkcs8.pem -pubin
unable to load Public Key
5925:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:
Expecting: PUBLIC KEY
user@ubuntu:~/TestCerts$ openssl rsa -in IServer_Key.orig.prikey.pem -out IServer_Key.pkcs8.pem
unable to load Private Key
5993:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1316:
5993:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:828:
5993:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:748:Field=n, Type=RSA
5993:error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib:d2i_pr.c:99:
5993:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:125:
user@ubuntu:~/TestCerts$ openssl pkcs8 -in IServer_Key.orig.prikey.pem -out IServer_Key.pkcs8.pem -nocrypt
Error decrypting key
6022:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:
Expecting: PRIVATE KEY
Cualquier ayuda sería muy apreciada en este punto.
Para convertir la clave privada de PKCS # 1 a PKCS # 8 con openssl:
# openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in pkcs1.key -out pkcs8.key
Eso funcionará siempre que tenga la clave PKCS # 1 en PEM (formato de texto) como se describe en la pregunta.
Trate de usar el siguiente comando. No lo he probado pero creo que debería funcionar.
openssl pkcs8 -topk8 -inform PEM -outform DER -in filename -out filename -nocrypt