En ocasiones necesitamos crear un SSL en nuestro localhost y que ese certificado tenga la suficiente autoridad para que nuestros navegadores nos pongan el tick verde. En mi caso me ha pasado con la plataforma de pagos stripe, la cual te da la oportunidad de hacer las pruebas en localhost poniendo una ruta de tu proyecto a escuchar. Esa ruta necesita el https y que esté firmado por una autoridad. Y para generar nuestro certificado vamos a utilizar mkcert.

Para instalar mkcert en linux, primero debemos instalar brew, siguiendo estos pasos:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/mi-carpeta-usuario/.bash_profile

eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

brew install mkcert

Si tenemos algún problema de permisos en la carpeta linuxbrew, solo tendremos que hacer un chown con nuestro usuario.

Una vez instalado tenemos que generar el certificado para el proyecto en local que queramos.

mkcert www.proyecto.loc www.proyecto.loc localhost 127.0.0.1 ::1

mkcert www.proyecto.loc www.proyecto.loc localhost 127.0.0.1 ::1

Eso comando va a generar 2 archivos, algo como: www.proyecto.loc+4.pem y www.actiage.loc+4-key.pem que son los que tendremos que guardar en una ruta determinada para luego llamarlos desde nuestro archivo de configuración del proyecto de la siguiente manera:

ssl_certificate /ruta-donde-quiero-guardar-certificado/www.proyecto.loc+4.pem;

ssl_certificate_key /ruta-donde-quiero-guardar-certificado/www.proyecto.loc+4-key.pem;

Ahora solo nos queda hacer un systemctl restart nginx.service o el equivalente para tu versión de linux y ya tendremos nuestro https autorizado.