miércoles, 21 de noviembre de 2018

Cómo generar CSR para obtener certificado SSL



Cómo generar un archivo .csr para obtener un archivo .crt (certificado SSL).



Hoy en día es básico que una página web sea accesible por HTTPS de forma segura con un certificado válido. Para que eso sea posible, debemos disponer de un certificado SSL válido y vigente para el dominio de la página web en cuestión.

Para obtener un certificado SSL para un dominio, primero debemos crear un archivo que contenga una "solicitud de firma de certificado". A continuación, debemos enviar este archivo a una empresa que se dedique a expedir certificados SSL para que lo valide y lo devuelva firmado por ellos, en forma de certificado SSL público. A partir de este momento, ya tendremos un certificado SSL válido, firmado por una entidad certificadora, listo para ser usado en nuestro servidor web.

La solicitud de firma de certificado, en inglés Certificate Signing Request, es un código que se guarda en un archivo de extensión .csr. Este archivo, se envía a una entidad certificadora y esta lo usa para generar un archivo .crt, el cual será la parte pública del certificado SSL. En el interior de un CSR quedan registrados datos tales como la empresa que lo pide, la localidad desde donde se pide y el dominio para el que se genera el certificado, entre otros.

Para generar un CSR, la opción más común es usar la utilidad openssl. Las distribuciones Linux lo suelen traer instalado por defecto, mientras que en Windows habrá que instalarlo explícitamente. Podemos obtener la última versión de OpenSSL para Windows desde aquí.

Una vez instalado OpenSSL, nos situamos en un directorio y generamos el CSR:

C:\temp>openssl req -nodes -keyout clave_privada.key -out pedido_certificado.csr -newkey rsa:2048 Generating a 2048 bit RSA private key ..........................................+++ ..........................................+++ writing new private key to 'clave_privada.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]:Empresa Organizational Unit Name (eg, section) []:IT Common Name (e.g. server FQDN or YOUR name) []:dominio.com Email Address []:hola@email.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Vemos que al generar un CSR se crean dos archivos:

- archivo.csr: el Certificate Signing Request del que ya hemos hablado.
- archivo.key: la clave privada del certificado -> es importante guardarlo bien.

Una vez generados estos dos ficheros, mandamos nuestro archivo CSR a una entidad certificadora (p.e. GoDaddy.com) y pagamos el precio que nos pidan por el certificado SSL. Recordemos que este certificado tiene una vigencia determinada, siendo esta 1 año, 2 años, 3 años o los que queramos pagar.

Una vez realizado el pago, la entidad nos devolverá un archivo con extensión .cer o .crt que ya podremos usar en nuestro servidor web para asegurar las comunicaciones vía HTTPS.
1

1 comentario: