Comandes bàsiques d’OpenSSL

OpenSSL és una eina de la línia de comandes, una de les més populars per la gestió de tasques relacionades amb els certificats.  En aquesta entrada veurem les comandes més bàsiques .

Generar una clau privada i un CSR nous

Una de les tasques més habituals és la creació d’un CSR per poder demanar un certificat a una entitat certificadora reconeguda.  Si no disposem d’un fitxer key, el podem crear amb la mateixa comanda:

openssl req -out nomdeldomini.csr -new -sha256 -newkey rsa:2048 -keyout nomdeldomini.key

Es crea la clau RSA i ens demanen una contrasenya:

Generating a RSA private key
.......................+++++
.........+++++
writing new private key to 'nomdeldomini.key'
Enter PEM pass phrase: 

Confirmem la contrasenya:

Verifying - Enter PEM pass phrase:

I se’ns demana la informació que haurà de contenir el certificat:

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.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Barcelona
Locality Name (eg, city) []:Barcelona
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nomdomini
Organizational Unit Name (eg, section) []:Departament de Sistemes
Common Name (e.g. server FQDN or YOUR name) []:nomdomini.com
Email Address []:certificats@nomdomini.com                                      
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:contrasenyasegura
An optional company name []:Nomdomini 

La primera contrasenya es fa servir per encriptar el certificat; la segona ens la pot demanar l’entitat certificadora per comprovar la nostra identitat.  Si no volem encriptar el certificat hem d’afegir l’opció -nodes a la comanda

openssl req -out nomdeldomini.csr -new -sha256 -newkey rsa:2048 -nodes -keyout nomdeldomini.key

I si no volem tampoc la segona contrasenya, senzillament la deixem en blanc.

Generar un CSR quan tenim un certificat i una clau privada

Aquesta circumstància es pot donar quan el que volem és renovar un certificat:

openssl req -in nomdeldomini.crt -key nomdeldomini.key -out nomdeldomini.csr

Si la comanda funciona correctament no ens ha de donar cap missatge.

Generar un certificat autosignat

Podem  generar un certificat autosignat quan no es necessita un certificat d’una entitat certificadora de confiança.  La comanda per generar-lo, amb una validesa d’un any és aquesta:

openssl req -days 365 -out nomdeldomini.crt -new -sha256 -newkey rsa:2048 -nodes -keyout nomdeldomini.key

I se’ns pregunta també quina informació ha de contenir el certificat:

Generating a RSA private key
..............+++++
........................+++++
writing new private key to 'nomdeldomini.key'
-----
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.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Barcelona
Locality Name (eg, city) []:Barcelona
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nomdomini
Organizational Unit Name (eg, section) []:Departament de Sistemes
Common Name (e.g. server FQDN or YOUR name) []:nomdomini.com
Email Address []:certificats@nomdomini.com 

Si no especifiquem un període de validesa en dies, el període per defecte és d’un mes.

Generar un certificat autosignat a partir d’un fitxer key i un CSR

Si ja tenim la clau privada i el CSR, la comanda per generar el certificat és

openssl req -in nomdeldomini.csr -key nomdeldomini.key -out nomdeldomini.crt -sha256 

Verificar un fitxer CSR

Per assegurar-nos de que la informació que conté el CSR és correcta, podem fer servir la comanda

openssl req -noout -text -in nomdeldomini.csr

Crear una clau privada

Si només necessitem generar una clau privada RSA, la comanda és aquesta:

openssl genrsa -out nomdeldomini.key 2048

Treure la contrasenya de la clau

Si volem treure la contrasenya d’una clau privada (sovint és força emprenyador) podem fer-ho amb aquesta comanda:

openssl rsa -in nomdeldomini.key -out sensecontrasenya.key

Verificar la clau privada

Per verificar la clau privada escribim

openssl rsa -in nomdeldomini.key -check

Verificar el fitxer del certificat

Podem verificar el fitxer del certificat escribint

openssl req -in nomdeldomini.crt -text -noout

Verificar l’entitat certificadora

Per verificar la clau privada escribim

openssl req -in nomdeldomini.crt -issuer -issuer_hash

Verificar el Hash d’un certificat

Podem verificar el hash del certificat escribint

openssl req -in nomdeldomini.crt -noout -hash

Convertir un certificat en format DER a PEM

Per convertir un certificat del format DER al format PEM hem d’escriure

openssl req -in nomdeldomini.crt -outform PEM  -out nomdeldomini.pem

Convertir un certificat DER a PFX

Podem convertir un certificat de format DER a PFX amb la següent comanda

openssl pkcs12 -export -out nomdeldomini.pfx -in nomdeldomini.crt -inkey nomdeldomini.key -certfile  certificatarrel.crt

Se’ns demanarà crear una contrasenya per exportar el certificat:

Enter export password:

I verificar-la:

Verifying – Enter Export Password:

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *