0

Crear certificados SHA256 autofirmados

Muchas empresas están cambiando sus certificados SHA1 para conexiones SSL al nuevo formato SHA256 / SHA2

El problema de estos certificados es el precio, aunque claro, toda seguridad es poca si queremos ofrecer calidad. Aunque claro, si  solo lo queremos para hacer unas tristes pruebas en un servidor personal o incluso un servidor de pre-producción, no tenemos porque gastar dinero el ello.

Vamos a explicar ahora de manera lo más sencilla posible el como generar los 3 ficheros base de certificados en una sola línea.

Los ficheros son los siguientes:

  • KEY
  • CSR
  • CRT

Una característica importante es que si tenemos instalado OpenSSL 0.9.8o+ cualquier certificado que generemos ya lo debería cargar de manera automática como SHA256

Si quieres saber las versiones de las aplicaciones que has de tener para poder usar estos certificados lo puedes ver desde este enlace

Por lo tanto, en caso de tener una vesión anterior como por ejemplo la 0.9.8e-12.el5_5.7 tendremos que hacerlo de la siguiente manera.

openssl req -x509 -sha256 -days 365 -newkey rsa:2048 -in CSR_FILE.csr -key PRIVATE_KEY.key -out server.crt

Cuando lo ejecutemos nos pedirá los siguientes datos


Generating a 2048 bit RSA private key
.........................+++
...................+++
writing new private key to 'PRIVATE_KEY.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) [GB]:ES State or Province Name (full name) [Berkshire]: PROVINCIA
Locality Name (eg, city) [Newbury]: CIUDAD
Organization Name (eg, company) [My Company Ltd]:EMPRESA
Organizational Unit Name (eg, section) []: EMPRESA
Common Name (eg, your name or your server's hostname) [] URL DE LA WEB
Email Address []:
-----
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Una vez que hayamos rellenado todos los datos (los que sean necesarios) el certificado debería estar listo para ser cargado en nuestro aplicativo.

Aunque podemos revisarlo haciendo lo siguiente:


openssl x509 -in certificate.crt -text -noout

Por lo que tendremos que fijarnos en las líneas:

  • Signature Algorithm: sha256WithRSAEncryption
  • Public Key Algorithm: rsaEncryption
  • RSA Public Key: (2048 bit)

Como se puede ver, se ha usado una encriptación RSA, mediante una clave pública de 2048 y mediante el algoritmo SHA256.