LINUX

Mkcert: cree certificados SSL para el desarrollo local en Linux

Certificados SSL de entorno de desarrollo local

En este artículo, explicaré cómo instalar mkcert, una herramienta de configuración cero en el último sistema Ubuntu. Mkcert es una herramienta sencilla que se puede utilizar para crear certificados de confianza local. No requiere ninguna configuración. Siempre es peligroso o imposible utilizar certificados de CA reales para localhost or 127.0.0.1. Incluso el uso de certificados autofirmados no es tan recomendable ya que provoca errores de confianza.

Mkcert nos brinda la mejor solución a esto al administrar nuestra propia CA. Esto creará e instalará automáticamente una CA local en el almacén raíz del sistema y generará certificados de confianza local. Veamos los pasos para instalar mkcert.

requisitos previos

  • Un servidor bien configurado con Go 1.10+ y privilegios de root.
  • Herramienta de base de datos de certificados (Certutil)

Instalación de Golang

Go es un lenguaje de programación de sistemas de propósito general con el que podemos construir una amplia variedad de aplicaciones. El lenguaje Go y sus kits de herramientas están disponibles en nuestro repositorio predeterminado. Podemos instalar el idioma Go en Ubuntu 18.04 simplemente ejecutando este comando.

#apt install golang
# go version
go version go1.10.1 linux/amd64

Ahora podemos crear un archivo «/etc/profile.d/goenv.sh» para configurar la variable de entorno Go del lado del servidor de la siguiente manera:

# cat /etc/profile.d/goenv.sh
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

# source /etc/profile.d/goenv.sh

Instalación del Certificado

Certificate Database Tool o Certutil es una sencilla utilidad de línea de comandos que puede crear/modificar certificados y sus bases de datos clave. Se puede utilizar específicamente para enumerar, generar, modificar o eliminar certificados. Incluso se puede usar para crear o cambiar contraseñas, generar nuevos pares de claves públicas/privadas. Además, muestra el contenido de la base de datos de claves o elimina pares de claves de la base de datos de claves. En nuestro servidor Ubuntu, podemos instalarlo ejecutando este comando a continuación:

#apt install libnss3-tools

Instalación de Mkcert

Dependiendo de la plataforma y los requisitos de nuestro sistema operativo, necesitamos descargar el archivo fuente para La herramienta Mkcert Aquí.

#wget https://github.com/FiloSottile/mkcert/archive/v1.0.0.tar.gz
# cd mkcert-1.0.0/
#make

Ahora podemos copiar este binario mkcert desde la carpeta de instalación a /usr/bin/ carpeta para usar en el nivel del servidor.

#cd mkcert-1.0.0/bin/
#cp mkcert /usr/bin/

Finalmente, podemos generar nuestra CA local para generar nuestros certificados con este comando:

# mkcert -install
Created a new local CA at "/root/.local/share/mkcert" 💥
The local CA is now installed in the system trust store! ⚡️

La raíz CA se creará y se guardará en la ruta /root/.local/share/mkcert. Normalmente, el certificado de CA y su clave se almacenan en una carpeta de datos de la aplicación en el hogar del usuario. La ubicación también se puede obtener usando el comando mkcert -CAROOT.

# mkcert -CAROOT
/root/.local/share/mkcert

Ahora podemos usar esta herramienta para generar certificados de desarrollo de confianza local según sea necesario:

# mkcert example.com '*.example.org' myapp.dev localhost 127.0.0.1 ::1
Using the local CA at "/root/.local/share/mkcert" ✨

Created a new certificate valid for the following names 📜
- "example.com"
- "*.example.org"
- "myapp.dev"
- "localhost"
- "127.0.0.1"
- "::1"

The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅

Como se informó en la ejecución de este comando, los certificados de confianza generados localmente se guardan en la ruta desde donde ejecutamos este comando. En mi caso, mis certificados se crean directamente en /root. Acabo de mover esos archivos a /etc/ssl carpeta de la siguiente manera:

#cp /root/example.com+5.pem /etc/ssl/certs/
#cp /root/example.com+5-key.pem /etc/ssl/private/

Habilitación de certificados en Apache2

Nuestro siguiente paso es instalar nuestro servidor web y habilitar SSL para usar estos certificados de desarrollo de confianza local. Instalé Apache2 y habilité SSL para usar esto.

#apt install apache2
#systemctl enable apache2
#systemctl start apache2

En segundo lugar, edite el archivo SSL predeterminado que se encuentra en /etc/apache2/sites-available/default-ssl.conf con nuestro certificado SSL generado localmente y detalles clave de la siguiente manera:

SSLCertificateFile /etc/ssl/certs/example.com+5.pem
SSLCertificateKeyFile /etc/ssl/private/example.com+5-key.pem

Ahora puede habilitar el módulo SSL y reiniciar el servicio Apache2 para que estos cambios sean efectivos.

# a2enmod ssl
# a2ensite default-ssl.conf
Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2
#systemctl reload apache2
#systemctl restart apache2

Finalmente, podemos intentar navegar a https://localhost para confirmar que funciona.

mkcert

Lea también:

¡Hola! estamos listos con nuestros certificados de confianza local. Mkcert está diseñado solo para fines de desarrollo, no se recomienda para producción, por lo que no debe usarse en máquinas de usuarios finales y no debe exportar ni compartir rootCA-key.pem por razones de seguridad. ¡Espero que este artículo sea informativo y útil para usted! Por favor publique sus valiosos comentarios y sugerencias al respecto.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar