Convertir .pem a .crt y .key
¿Alguien puede decirme la forma/comando correcto para extraer/convertir el certificado .crt
y los archivos de clave privada .key
de un .pem
archivo? Acabo de leer que son intercambiables, pero no cómo.
Pude convertir pem a crt usando esto:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
Conversión usando OpenSSL
Estos comandos le permiten convertir certificados y claves a diferentes formatos para hacerlos compatibles con tipos específicos de servidores o software.
Convertir un archivo DER (.crt .cer .der) a PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
Convertir un archivo PEM a DER
openssl x509 -outform der -in certificate.pem -out certificate.der
Convierta un archivo PKCS#12 (.pfx .p12) que contenga una clave privada y certificados a PEM
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
Convierta un archivo de certificado PEM y una clave privada a PKCS#12 (.pfx .p12)
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Convertir PEM a CRT (archivo .CRT)
openssl x509 -outform der -in certificate.pem -out certificate.crt
OpenSSL Convertir PEM
Convertir PEM a DER
openssl x509 -outform der -in certificate.pem -out certificate.der
Convertir PEM a P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
Convertir PEM a PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
OpenSSL Convertir DER
Convertir DER a PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
OpenSSL Convertir P7B
Convertir P7B a PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
Convertir P7B a PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
OpenSSL Convertir PFX
Convertir PFX a PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Generar claves rsa por OpenSSL
Al usar OpenSSL en la línea de comando, primero necesitaría generar una clave pública y privada, debe proteger este archivo con contraseña usando el argumento -passout, hay muchas formas diferentes que este argumento puede adoptar, así que consulte la documentación de OpenSSL al respecto.
openssl genrsa -out private.pem 1024
Esto crea un archivo de clave llamado private.pem que usa 1024 bits. Este archivo en realidad tiene claves públicas y privadas, por lo que debes extraer la pública de este archivo:
openssl rsa -in private.pem -out public.pem -outform PEM -pubout or openssl rsa -in private.pem -pubout > public.pem or openssl rsa -in private.pem -pubout -out public.pem
Ahora tendrá public.pem que contiene solo su clave pública; puede compartirla libremente con terceros. Puedes probarlo todo simplemente cifrando algo tú mismo usando tu clave pública y luego descifrando usando tu clave privada, primero necesitamos un poco de datos para cifrar:
Archivo de ejemplo:
echo 'too many secrets' > file.txt
Ahora tiene algunos datos en el archivo.txt, cifrémoslos usando OpenSSL y la clave pública:
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Esto crea una versión cifrada de file.txt llamándolo file.ssl, si miras este archivo es solo basura binaria, nada muy útil para nadie. Ahora puedes descifrarlo usando la clave privada:
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
Ahora tendrás un archivo sin cifrar en decrypted.txt:
cat decrypted.txt |output -> too many secrets
Opciones de HERRAMIENTAS RSA en OpenSSL
NOMBRE
rsa: herramienta de procesamiento de claves RSA
SINOPSIS
openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in nombre de archivo] [-passin arg] [-out nombre de archivo] [-passout arg] [-aes128] [- aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-id del motor]
DESCRIPCIÓN
El comando rsa procesa claves RSA. Se pueden convertir entre varios formularios e imprimir sus componentes. Tenga en cuenta que este comando utiliza el formato tradicional compatible con SSLeay para el cifrado de clave privada: las aplicaciones más nuevas deben utilizar el formato PKCS#8, más seguro, mediante la utilidad pkcs8.
OPCIONES DE COMANDO
-help
Imprima un mensaje de uso.
-inform DER|NET|PEM
Esto especifica el formato de entrada. La opción DER utiliza un formulario codificado DER ASN1 compatible con el formato PKCS#1 RSAPrivateKey o SubjectPublicKeyInfo. El formulario PEM es el formato predeterminado: consta del formato DER base64 codificado con líneas de encabezado y pie de página adicionales. En la entrada también se aceptan claves privadas en formato PKCS#8. El formulario NET es un formato que se describe en la sección NOTAS.
-outform DER|NET|PEM
Esto especifica el formato de salida, las opciones tienen el mismo significado que la opción -inform.
-in filename
Esto especifica el nombre del archivo de entrada para leer una clave o una entrada estándar si no se especifica esta opción. Si la clave está cifrada, se solicitará una frase de contraseña.
-passin arg
la fuente de contraseña del archivo de entrada. Para obtener más información sobre el formato de arg, consulte la sección ARGUMENTOS DE FRASE DE PASO en openssl.
-out filename
Esto especifica el nombre del archivo de salida para escribir una clave o una salida estándar si no se especifica esta opción. Si se configura alguna opción de cifrado, se solicitará una frase de contraseña. El nombre del archivo de salida no debe ser el mismo que el nombre del archivo de entrada.
-passout password
la fuente de contraseña del archivo de salida. Para obtener más información sobre el formato de arg, consulte la sección ARGUMENTOS DE FRASE DE PASO en openssl.
-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea
Estas opciones cifran la clave privada con el cifrado especificado antes de generarla. Se solicita una frase de contraseña. Si no se especifica ninguna de estas opciones, la clave se escribe en texto sin formato. Esto significa que el uso de la utilidad rsa para leer una clave cifrada sin opción de cifrado se puede usar para eliminar la frase de contraseña de una clave, o al configurar las opciones de cifrado se puede usar para agregar o cambiar la frase de contraseña. Estas opciones sólo se pueden utilizar con archivos de salida en formato PEM.
-text
Imprime los distintos componentes de clave pública o privada en texto plano además de la versión codificada.
-noout
esta opción evita la salida de la versión codificada de la clave.
-modulus
esta opción imprime el valor del módulo de la clave.
-check
esta opción verifica la coherencia de una clave privada RSA.
-pubin
De forma predeterminada, se lee una clave privada del archivo de entrada: con esta opción, en su lugar, se lee una clave pública.
-pubout
de forma predeterminada, se genera una clave privada: con esta opción se generará una clave pública. Esta opción se configura automáticamente si la entrada es una clave pública.
-RSAPublicKey_in, -RSAPublicKey_out
como -pubin y -pubout, excepto que en su lugar se utiliza el formato RSAPublicKey.
-engine id
especificar un motor (por su cadena de identificación única) hará que rsa intente obtener una referencia funcional al motor especificado, inicializándolo si es necesario. Luego, el motor se configurará como predeterminado para todos los algoritmos disponibles.
NOTAS
El formato de clave privada PEM utiliza las líneas de encabezado y pie de página:
-----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
El formato de clave pública PEM utiliza las líneas de encabezado y pie de página:
-----BEGIN PUBLIC KEY----- -----END PUBLIC KEY-----
El formato PEM RSAPublicKey utiliza las líneas de encabezado y pie de página:
-----BEGIN RSA PUBLIC KEY----- -----END RSA PUBLIC KEY-----
El formulario NET es un formato compatible con servidores Netscape más antiguos y archivos .key de Microsoft IIS; utiliza RC4 sin sal para su cifrado. No es muy seguro y por eso sólo debe usarse cuando sea necesario.
Algunas versiones más nuevas de IIS tienen datos adicionales en los archivos .key exportados. Para usarlos con la utilidad, vea el archivo con un editor binario y busque la cadena "clave privada", luego rastree la secuencia de bytes 0x30, 0x82 (esta es una SECUENCIA ASN1). Copie todos los datos desde este punto en adelante a otro archivo y utilícelo como entrada para la utilidad rsa con la opción -inform NET.
EJEMPLOS
Para eliminar la frase de contraseña en una clave privada RSA:
openssl rsa -in key.pem -out keyout.pem
Para cifrar una clave privada usando triple DES:
openssl rsa -in key.pem -des3 -out keyout.pem
Para convertir una clave privada de formato PEM a DER:
openssl rsa -in key.pem -outform DER -out keyout.der
Para imprimir los componentes de una clave privada en la salida estándar:
openssl rsa -in key.pem -text -noout
Para simplemente generar la parte pública de una clave privada:
openssl rsa -in key.pem -pubout -out pubkey.pem
Genere la parte pública de una clave privada en formato RSAPublicKey:
openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem