Cómo crear un certificado OpenSSL para localhost en Windows

Este tutorial es para crear un certificado auto firmado para ser utilizado en pruebas desde nuestro servidor local, este no tendrá ningún tipo de validez externa ya que no es firmado por una entidad certificadora.

Lo primero es descargar el paquete OpenSSL v1.1.1 para Windows de la siguiente dirección web:

https://slproweb.com/products/Win32OpenSSL.html

Descargar una de las versiones que no sea Light, por ejemplo:

Una vez descargado, instalar como cualquier otro programa sin mover ninguna de las opciones que ya tiene por defecto el instalador.

Después de instalado abrir una consola o cmd con permisos de administrador y crear una variable de configuración para OpenSSL con el siguiente comando:

 

Agregar una variable de entorno para poder utilizar el comando "openssl" en la consola. Abrir la ventana para agregar variables de entorno del sistema operativo, depende de la versión de Windows, y agregar la ruta del directorio "bin" al Path de las variables:

C:\Program Files\OpenSSL-Win64\bin

Dependiendo de la versión de Windows habrá que reiniciar el equipo, si es Windows 10 bastará con cerrar la consola y volver a abrir otra (con permisos de administrador), digitar el comando "openssl" y el resultado debe ser el interprete de comandos de OpenSSL.

Podemos salir del interprete de comandos con "exit", ahora debemos crear una carpeta donde guardaremos los certificados que estamos por hacer, mi carpeta se llama "ssl_local".

Desde la consola navegamos hasta ese directorio donde crearemos una llave RSA-2048 que luego servirá para generar el certificado, podes ocupar los nombres que queras, yo le llamaré "localCA.key", usamos el siguiente comando:

 

Luego de ejecutarlo te pedirá que introduzcas una contraseña y luego la confirmes.

Ahora crearé el siguiente archivo pem que es el medio para codificar data, con nombre "localCA.pem" y que tendrá una validez de 1,024 días para este ejemplo:

 

Como notarán estamos utilizando la llave que recién creamos para lograr generar el certificado pem. Debemos introducir la contraseña de la llave.

En el procedimiento se pedirán algunos valores de configuración para el certificado, algunos se pueden dejar en blanco o introducir el valor por defecto, queda a discreción:

 

Ahora de requisito debemos crear dos archivos para crear finalmente los certificados ssl que buscamos obtener. Al primero le llamaremos "server.csr.cnf", utiliza la información como se introdujo al crear el certificado pem:

 

El segundo archivo tendrá de nombre "v3.ext" que sirve para crear un certificado X509 v3, con el siguiente contenido:

 

Ya casi vamos llegando al final de lo que necesitamos, vamos a crear la llave y certificado que firma solicitudes para el dominio, vamos a utilizar el archivo de respuesta "server.csr.cnf" para crear los archivos "kiuvox.local.key" y "kiuvox.local.csr":

 

Finalmente debemos firmar nuestro certificado, el resultado sera el archivo "kiuvox.local.crt", en el siguiente comando el parámetro "-days" indica la cantidad de días que tendrá de validez el certificado, también utilizaremos el archivo v3.ext para introducir configuraciones:

 

Digitar la contraseña de la llave.

Esta da como resultado el certificado que podemos agregar, por ejemplo, a nuestro servidor web Apache.

Si desean ahondar en el significado de todos los comandos y parámetros ver la documentación de OpenSSL.