Saltar al contenido
Todo sobre trucos y tutoriales de Android

Mkcert: cree certificados SSL para el desarrollo local en Linux

Certificados SSL Entorno de desarrollo local

En este artículo, explicaré cómo instalar mkcert, una herramienta de configuración cero en nuestro sistema Ubuntu más reciente. 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 autoridades de certificación reales para localhost or 127.0.0.1. Ni siquiera se recomienda el uso de certificados autofirmados, ya que provocan errores de confianza.

Mkcert nos brinda la mejor solución para esto al administrar su 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.
  • La herramienta 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 lenguaje 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 en todo el servidor como se muestra a continuación:

# 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 de Certutil

La herramienta de base de datos de certificados o Certutil es una sencilla utilidad de línea de comandos que puede crear o modificar certificados y sus bases de datos de claves. Se puede usar específicamente para enumerar, generar, modificar o eliminar certificados. Incluso se puede usar para crear o cambiar la contraseña, generar nuevos pares de claves pública/privada. Además, muestra el contenido de la base de datos de claves o elimina pares de claves dentro 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

Según la plataforma de nuestro sistema operativo y los requisitos, debemos descargar el archivo fuente de 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 usarla en todo el 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 CA raíz se creará y se guardará en la ruta /root/.local/share/mkcert. Por lo general, 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 informa 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 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 los 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 hacer uso de esto.

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

En segundo lugar, edite el archivo SSL predeterminado ubicado en /etc/apache2/sites-available/default-ssl.conf con nuestro certificado SSL generado localmente y detalles clave como se muestra a continuación:

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 por https://localhost para confirmar que funciona.

mkcert

Lea también:

  • Cómo instalar los certificados SSL de Let’s Encrypt en Ubuntu 18.04
TE PUEDE INTERESAR:  13 cosas geniales para hacer con Linux

¡Hola! estamos listos con nuestros certificados de confianza local. Mkcert está destinado solo para fines de desarrollo, no se recomienda para producción, por lo que no debe usarse en las máquinas de los usuarios finales, y nunca debe exportar o 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.