Obtener versión del OpenSSL
openssl version
Nos devuelve la versión del producto (todos los ejemplo están hechos con esta versión)
OpenSSL 0.9.6g 9 Aug 2002
Generar clave simétrica aleatoria
Clave simétrica en 128bits.key [salida]
openssl rand 128 >128bits.key
Generar claves pública y privada
Ejemplo de cómo generar además de las claves la solicitud de un certificado para un Concurso (en formato PKCS#10)
Crear el fichero de texto (con notepad) llamado UserConf.txt con el siguiente contenido:
=============================== Inicio del fichero =================
[ req ]
default_bits = 1024
distinguished_name = req_distinguished_name
encrypt_rsa_key = no
default_md = sha1
[ req_distinguished_name ]
countryName = Pais (codigo de 2 letras)
countryName_default = ES
organizationName = Organization Name (eg, company)
organizationName_default = FNMT - Pruebas
commonName = Common Name (eg, YOUR name)
emailAddress = Email Address
================================ Fin del fichero =================
Después lanzamos este comando:
openssl req -new -keyout newkey.pem -out newreq.pem -days 365 -config UserConf.txt
Esta será la salida:
Generating a 1024 bit RSA private key
.......................++++++
...................................++++++
writing new private key to 'newkey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Pais (codigo de 2 letras) [ES]: [intro]
Organization Name (eg, company) [FNMT – Pruebas] : [intro]
Common Name (eg, YOUR name) []:Concurso 02
Cifrar clave privada con clave simétrica
Clave privada en: newkey.pem [entrada]
Clave simétrica en 128bits.key [entrada]
Clave privada cifrada en: KpvCifrada.3des [salida]
openssl des3 -in newkey.pem -out KpvCifrada.3des -kfile 128bits.key
Descifrar clave privada con clave simétrica
Clave privada cifrada en: KpvCifrada.3des [entrada]
Clave simétrica en 128bits.key [entrada]
Clave privada sin cifrar en: Kpv.pem [salida]
openssl des3 -d -in KpvCifrada.3des -out Kpv.pem -kfile 128bits.key
Convertir un certificado DER a PEM
Certificado en: concurso2.crt [entrada]
Certificado en: concurso2.pem [salida]
openssl x509 -in concurso2.crt -inform DER -out concurso2.pem -outform PEM
Cifrar un fichero usando RSA
Certificado en: concurso2.pem [entrada]
Fichero en claro en: ParaCifar.zip [entrada]
Fichero cifrado en: Cifrado.RSA [salida]
openssl rsautl -in 128bits.key -out 128bits.RSA -inkey concurso2.crt -certin –encrypt –raw
Nota: Esta función sólo cifra ficheros de 0 a 128bits de tamaño, si es de menos de 128 hay que sustituir “–raw” por “-pkcs” (relleno o “padding” para completar los 128 bits)
Descifrar un fichero usando RSA
Clave privada en: newkey.pem [entrada]
Fichero cifrado en: Cifrado.RSA [entrada]
Fichero en claro en: Descifrado.zip [salida]
openssl rsautl -in 128bits.RSA -out 128bits.k2 -inkey newkey.pem -decrypt –raw
Construir un Pkcs#12 a partir del certificado y de la clave privada
Clave privada en: newkey.pem [entrada]
Certificado en: concurso2.pem [entrada]
Fichero en claro en: concurso2.p12 [salida]
openssl pkcs12 -export -inkey newkey.pem -in concurso2.pem -out concurso2.p12 –descert
La salida del comando será:
Loading 'screen' into random state - done
Enter Export Password: [Teclear aquí la password del Pkcs#12]
Verifying password - Enter Export Password: [Repetir la password del Pkcs#12]
Construcción de un PKCS#7 a partir del fichero cifrado con la clave simétrica y la clave simétrica cifrada con la clave pública
Clave simétrica cifrada con Kpv: SimetricaCifrada.rsa [entrada]
Fichero cifrado con clave simétrica: Cifrado.3des [entrada]
Pkcs7: CifradoRSA.p7 [salida]
- Parece ser que con OpenSSL no se puede -
Sacar de un PKCS#7 el fichero cifrado con la clave simétrica y la clave simétrica cifrada con la clave pública
Pkcs7: CifradoRSA.p7 [entrada]
Clave simétrica cifrada con Kpv: SimetricaCifrada.rsa [salida]
Fichero cifrado con clave simétrica: Cifrado.3des [salida]
- Parece ser que con OpenSSL no se puede -
No hay comentarios:
Publicar un comentario