req generate from create check openssl certificate

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