Crear solicitud de certificado (CSR)

Una solicitud de certificado (CSR) contiene la parte fundamental de un certificado SSL (CRT), y esta preparado para ser firmado por una autoridad certificadora (CA). Mediante la firma del CSR por una CA se obtiene el CRT que puede ser instalado en un servidor para cifrar el tráfico (HTTPS).

El CSR contiene una firma digital, el identificador del algoritmo de cifrado e información del certificado. Los campos que incluyen la información del certificado son:

  • Common Name, es el FQDN del certificado. Ejemplo: blog.guillen.io
  • Organization, nombre de la organización.
  • Department, departamento que gestiona el certificado.
  • City/Locality, localidad.
  • State/County/Region, ciudad.
  • Country, país.
  • Email address, una dirección de correo de contacto.

Para generar el par clave cifrada/solicitud de certificado (key/csr) solo es necesario ejecutar openssl req -new -newkey rsa:2048 -nodes -keyout wildcard.guillen.io.key -out, ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[agd@folio13 ~]$ cd certificates/official/ssl2buy/20180310/
[agd@folio13 20180310]$ ls
[agd@folio13 20180310]$ openssl req -new -newkey rsa:2048 -nodes -keyout wildcard.guillen.io.key -out wildcard.guillen.io.csr
Generating a 2048 bit RSA private key
.................................................................................................................................................................................+++
........................................................................................................+++
writing new private key to 'wildcard.guillen.io.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) [XX]:ES
State or Province Name (full name) []:Madrid
Locality Name (eg, city) [Default City]:Madrid
Organization Name (eg, company) [Default Company Ltd]:Guillen
Organizational Unit Name (eg, section) []:IT Department
Common Name (eg, your name or your server's hostname) []:*.guillen.io
Email Address []:it@guillen.io
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

En el directorio actual se habrán generado dos archivos, la clave privada (.key) y la solicitud de certificado (.csr).

1
2
3
4
5
6
[agd@folio13 20180310]$ ls -lah
total 16K
drwxrwxr-x. 2 agd agd 4,0K mar 10 17:18 .
drwxrwxr-x. 3 agd agd 4,0K mar 10 17:08 ..
-rw-rw-r--. 1 agd agd 1,1K mar 10 17:18 wildcard.guillen.io.csr
-rw-------. 1 agd agd 1,7K mar 10 17:14 wildcard.guillen.io.key

El archivo .csr debe ser firmado por una CA, ya sea la CA Root de nuestra empresa o una CA reconocida. En mi caso compré un wildcard con una vigencia de 2 años por 80$ en SSL2BUY (enlace no referido).

Entradas de interés

Contenidos