En este post te mostraré cómo generar un certificado para poder (en palabras simples) agregar HTTPS a una app web usando el archivo con extensión crt y la clave con extensión key, desde el proceso de descargar openssl hasta la generación.
Nota: este certificado no es válido en la mayoría de casos, es decir, funciona para pruebas locales o para cuando necesitas HTTPS para pasar la seguridad del navegador, pero no para ponerle https a un sitio normal ya que dará una advertencia. Si quieres hacer eso, compra uno con tu proveedor de hosting o utiliza letsencrypt.
Descargar OpenSSL para Windows
Navega a la siguiente dirección:
https://sourceforge.net/projects/openssl/files/latest/download
Se va a descargar un archivo zip. Debes extraerlo en un directorio accesible.
Opcional: agregar directorio a la PATH
Si quieres ejecutar el binario de openssl
desde cualquier lugar, agrega la ruta de la carpeta bin (que viene dentro del zip que has extraído anteriormente) a la PATH de Windows.
En caso de que no quieras agregarlo, simplemente navega desde el CMD hasta el directorio en donde lo descargaste y colócate en la carpeta bin
; como yo lo haré.
Configurando entorno
Ahora ejecuta un símbolo del sistema, terminal o CMD como administrador. En él, navega hasta la carpeta bin
que viene dentro del directorio en donde extrajiste el zip.
Dentro del mismo directorio bin
vas a encontrar un archivo llamado openssl.cnf
, hay que establecer la variable OPENSSL_CNF
apuntando a la ruta de ese archivo.
En mi caso los comandos fueron:
cd C:\Users\usuario\Desktop\openssl-1.0.2j-fips-x86_64\OpenSSL\bin
SET OPENSSL_CONF=C:\Users\usuario\Desktop\openssl-1.0.2j-fips-x86_64\OpenSSL\bin\openssl.cnf
Generar clave key
Ahora en esa misma consola ejecutamos:
openssl genrsa -out C:\Users\usuario\Desktop\clave.key 2048
Como ves, estoy indicando la ruta de salida en mi escritorio, usando una longitud de clave de 2048 bits. En mi caso la clave estará en el escritorio:
Guarda o memoriza la ruta de la clave, pues la vamos a usar a continuación
Generación de cert
Sin salir de la terminal anterior, ejecutamos ahora:
openssl req -new -x509 -sha256 -key C:\Users\usuario\Desktop\clave.key -out C:\Users\usuario\Desktop\certificado.crt -days 365
Por favor nota que se está especificando la ruta de la clave generada anteriormente, la ubicación del archivo de salida y finalmente los días.
Mira la imagen:
Como ves se solicitan algunos datos que debes llenar para generar el certificado.
Conclusión
Ahora tenemos un certificado que podemos usar en cualquier lugar; ya es cuestión de cada servidor implementarlo a su manera.
Recuerda que debes aceptar el riesgo de seguridad en el navegador para poder proceder. Así se ve el mío: