En este post explicaremos cómo crear ó generar un CSR (Certificate Signing Request) creado desde OpenSSL. Como sabremos un CSR es útil en la generación de certificados para la autenticación y cifrado de nuestras comunicaciones SSL. Por otro lado, OpenSSL es un software desarrollado y mantenido por The OpenSSL Project es un software robusto y de grado de comercialización con un completo kit de utilidades para proposito general, para mas información acerca del proyecto visita su página oficial en el siguiente aquí.
Read more: OpenSSL: como generar un CSR con SANInstalación de OpenSSL
Para simplificar las cosas instalaremos OpenSSL desde un archivo precompilado que podremos descargar en la siguiente página: https://slproweb.com/products/Win32OpenSSL.html
Descargaremos la version Light ya que cuenta con lo necesario para nuestro propósito, el formato seleccionado será el .msi damos click en la extensión y automáticamente comenzará la descarga.

Ejecutamos el archivo y nos solicitará la aceptación de licencia, aceptamos y continuamos:

Seleccionamos la carpeta donde se instalará:

Nos mostrará que la instalacion creará un acceso directo en el menú de inicio:

En la siguiente pantalla nos mostrará el directorio donde se instalarán los DLLs del programa:

Para proceder a la instalación tendremos que confirmar las configuraciones previas:

Una vez terminada la instalación nos mostrará la pantalla de donación al proyecto:

En este caso tendremos que añadir el comando “openssl” a nuestro cmd del sistema windows. Para ello nos dirigimos a: >propiedades del sistema -> variables de entorno -> PATH -> New

Verificamos la instalación de OpenSSL desde el CMD de windows con el siguiente comando, el cual tambien funciona para ver la version que tenemos instalada de nuestro OpenSSL:
openssl version

Generando un CSR con SAN usando OpenSSL
Una vez instalado podremos continuar con la generación de nuestro CSR. Podemos iniciar creando una carpeta desde donde crearemos nuestro CSR ejemplor:

En mi caso creé una carpeta en el disco C llamada “openssl”. Para la siguiente tarea deberemos crear un archivo .cfg el cual le cargaremos a openssl y contendrá toda la información que necesitamos para crear nuestro CSR, para ello nos apoyaremos de un notepad, copiaremos la siguiente configuración y posteriormente guardaremos con extension .cfg en la carpeta previamente creada.
[req]
default_bits = 2048
default_keyfile = privatekey.key
distinguished_name = req_distinguished_name
req_extensions = req_ext
[req_distinguished_name]
commonName = Common Name (eg, YOUR name)
commonName_default = host1.domain.com
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = California
localityName = Locality Name (eg, city)
localityName_default = San Jose
0.organizationName = Organization Name (eg, company)
0.organizationName_default = Company Inc
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = host1.domain.com
DNS.2 = host2.domain.com
Como ven en la configuración anterior, el archivo contiene toda la información necesario para crear un CSR y al final los nombres alternativos es decir los SAN. SAN (subject alternative name) hace referencia a los hostname alternativos que pueden contener este mismo Certificado, por ejemplo:
- 2 servidores web que entregan la misma pagina web pueden contener un mismo certificado con SAN.
- Terminales de VPN que puedan consultar los usuarios bajo el mismo dominio, con una SAN se elimina la creación de un certificado individual para cada equipo.
La configuracion quedaría de la siguiente forma:

Muy importante notar que al inicio del archivo se solicita crear la clave privada en un archivo llamado “privatekey.key” clave asimetrica RSA de 2048 bits.
Ejecutaremos el siguiente comando para generar nuestro archivo .CSR
openssl req -new -nodes -out <nombre_csr>.csr -config <archivo>.cfg

Como ven openssl nos generará las claves, seguido nos solicitará la información del CSR, como colocamos configuración de default en nuestro archivo .cfg solo nos quedaría presionar enter en cada solicitud. Aunque, si quieres modificarlo puedes añadir tu información en cada prompt.
El comando nos generará los siguientes archivos:

En nuestra carpeta tendremos: el archivo de configuración .cfg, el archivo de .csr para crear nuestro certificado, la llave privada de nuestro certificado .key. Es recomendable mantener la clave privada en ordenadores confiables y con actualizaciones al día ya que si por algún motivo esta clave privada se filtra podría vulnerar nuestro certificado público.
En esencia, ya hemos generado los archivos necesarios para enviar a nuestro CA para que pueda generar nuestro certificado, los siguientes pasos: creación de certificado, carga de certificado o conversión de certificado a formato .pfx seran vistos en los siguientes posts.
Saludes troubleshooters! recuerden unirse a nuestro telegram: