Tutoriales

Crear certificados SSL de confianza para el desarrollo local

Si alguna vez has intentado configurar https Desarrolle localmente y puede encontrar paredes complejas. Genere un certificado autofirmado, deje que su navegador confíe en él y manejar las advertencias puede ser un verdadero dolor, y eso es todo mkcert Adelante.

Mkcert es una herramienta simple que permite a los desarrolladores y sysadmins crear certificados SSL de confianza local para el desarrollo y las pruebas, eliminando las molestas advertencias del navegador, y sí, es gratuito, de código abierto y funciona en Linux.

Lo que te llevaré en esta guía Mkcert Sí, cómo funciona, cómo instalar y cómo usarlo de manera efectiva en un entorno de Linux.

¿Por qué necesitamos HTTP localmente?

Antes de entrar mkcertechemos un vistazo rápido a por qué quieres https En su entorno de desarrollo.

  • Las aplicaciones web modernas requieren HTTPS – Muchas API, personal de servicio, cookies y características del navegador requieren conexiones seguras. No httpssu aplicación puede comportarse de manera diferente en el desarrollo y la producción.
  • Entorno de producción coincidente – Si su configuración de producción usa https (Debería ser), es aconsejable probar todo en las mismas condiciones durante el desarrollo.
  • Compatibilidad y prueba del navegadorAleación de cromo,,,,, Firefoxy otros navegadores modernos hacen cumplir políticas de seguridad más estrictas para orígenes inseguros (HTTP).

Pero aquí está la comida para llevar: los navegadores odian los certificados autofirmados, y a menos que estén firmados por certificados de confianza, emitirán una advertencia terrible (California).

¿Qué es Mkcert?

Mkcert Es una herramienta de línea de comando para fabricar certificados de desarrollo de confianza local.

Pasa:

  • Cree su propia Autorización de Certificado (CA) en el sistema
  • Haga que su sistema operativo y su navegador confíen en esta CA local
  • Generar certificados TLS firmados por esta CA, por lo que el navegador confía en ellos

en breve mkcert Como tu personal Agencia de certificados (CA)y su navegador trata el certificado que genera como válido, sin advertencias, sin hacks de navegador, solo HTTPS limpios y confiables para su desarrollo local.

Instale mkcert en Linux

Antes de la instalación mkcertdebe asegurarse de que las bibliotecas del sistema necesarias estén disponibles, lo que ayudará mkcert Integrarse con el almacén de certificados del sistema, especialmente para el soporte de Firefox (utilizando NSS base de datos).

sudo apt install libnss3-tools -y        #Debian-based
sudo dnf install nss-tools -y            #RHEL-based 
sudo zypper install mozilla-nss-tools    #OpenSUSE
sudo pacman -S nss                       #Arch

A continuación, hay dos métodos de instalación principales mkcert: Use el administrador de paquetes de distribución de Linux o descargue manualmente el binario. Elija qué método es adecuado para su configuración.

Opción A: Instale MKCERT a través del Administrador de paquetes

 
sudo apt install mkcert        #Debian-based
sudo dnf install mkcert        #RHEL-based
sudo zypper install mkcert     #OpenSUSE
sudo pacman -S mkcert           #Arch

Opción B: Instalación manual (para otras distribuciones)

si mkcert No está disponible en su biblioteca de distribución, o si prefiere la última versión, puede descargar e instalar manualmente el binario.

Primero, descargar Último binario Mkcert de github:

wget 

Luego muévalo a un directorio en el sistema PATH Y hazlo ejecutable:

sudo mv mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert
sudo chmod +x /usr/local/bin/mkcert

Finalmente, verifique la instalación revisando la versión:

mkcert --version

Si ve el número de versión, mkcert Ahora disponible en máquinas Linux.

Confiar en las agencias de certificados locales

Después de la instalación mkcertEl siguiente paso es crear y confiar en la Autorización de Certificado Local (CA), que es una configuración única que garantiza que se utilice cualquier certificado que use. mkcert Su sistema y navegador confiarán automáticamente.

Para comenzar, simplemente ejecute el siguiente comando en su terminal:

mkcert -install

El comando anterior genera una nueva CA local y la almacena en su directorio de inicio ~/.local/share/mkcert Luego agrega esta CA a la tienda de confianza de su sistema Linux para que el sistema operativo reconozca que cualquier certificado que firmara es válido.

Si tienes libnss3-tools Paquetes instalados (si los usa, debe Firefox), mkcert La CA también se agregará a la base de datos de certificados internos de Firefox, lo que significa que Firefox confiará en su certificado de desarrollo sin quejas.

Una vez que el comando esté terminado, verá una salida similar a esta:

Created a new local CA at "/home/you/.local/share/mkcert"
The local CA is now installed in the system trust store!

Su sistema ahora está configurado para confiar en cualquier TLS/SSL Certificado generado mkcertque elimina las advertencias habituales del navegador que recibe con sus certificados autofirmados y prepara el escenario para un HTTP seguro y confiable durante el desarrollo local.

Cree un certificado local usando MKCERT

Ahora es la parte divertida, en realidad usando mkcert. Supongamos que está desarrollando una aplicación web y desea servirla https existir myapp.local.

Puede generar un certificado para el dominio simplemente ejecutando el siguiente comando:

mkcert myapp.local

Una vez ejecutado, mkcert Se generarán dos archivos en su directorio actual: myapp.local.pemeste es el certificado, y myapp.local-key.pemesta es la clave privada.

Estos archivos se pueden usar directamente con el servidor web local, p. nginx,,,,, apacheincluso servidores de desarrollo ligero como Python http.server Configurar para admitir Ssl.

Si utiliza un entorno de desarrollo más complejo que involucra múltiples dominios, subdominios o incluso acceso local, mkcert Le permite generar un certificado que sobrescribe todos los certificados en un solo comando.

Por ejemplo:

mkcert myapp.local "*.myapp.local" localhost 127.0.0.1 ::1

El comando anterior genera un certificado válido myapp.localcualquier subdominio similar api.myapp.local,además localhost Sus equivalentes de IP 127.0.0.1 Para IPv4 y ::1 Para IPv6.

Use MKCERT con el servidor Nginx local

Explore un ejemplo práctico de uso mkcert Servir aplicaciones web locales https usar nginx. Imagine su servidor de desarrollo local en ejecución http://localhost:3000tú quieres https://myapp.local.

Primero, necesitas mapear el dominio myapp.local Ve a tu máquina local. Abierto /etc/hosts Envíe con su editor de texto favorito.

sudo nano /etc/hosts

Y agregue la siguiente línea, que le dice a su sistema que resuelva myapp.local Vaya a la interfaz de bucle de bucle local.

127.0.0.1 myapp.local

A continuación, usa mkcertse crearán dos archivos en su directorio actual: myapp.local.pem (Certificado) y myapp.local-key.pem (Clave privada).

mkcert myapp.local

Ahora, configure nginx Use estos certificados abriendo la configuración de Nginx (generalmente ubicada en /etc/nginx/sites-available/ o /etc/nginx/conf.d/) y crear o actualizar dicho bloque de servidor:

server {
    listen 443 ssl;
    server_name myapp.local;

    ssl_certificate /path/to/myapp.local.pem;
    ssl_certificate_key /path/to/myapp.local-key.pem;

    location / {
        proxy_pass 
    }
}

Asegúrese de reemplazar /path/to/ Ruta real para usar certificado y archivos clave mkcert.

Una vez que la configuración está en su lugar, vuelva a cargar o reinicie NGINX para aplicar cambios:

sudo systemctl restart nginx

Ahora abra el navegador y el acceso https://myapp.local. Debería ver su aplicación se ejecuta de manera segura httpssin advertencia de certificado, al igual que en un entorno de producción real.

Instrucciones de seguridad

Instrucciones de seguridad: mkcert Estrictamente diseñado para fines de desarrollo y prueba. Certificado generado mkcert Nunca lo use en un entorno de producción, ya que la herramienta crea una Autorización de Certificado Local (CA) que no es reconocida por los sistemas o navegadores globales.

Además, la clave privada de esta CA se almacena en texto plano, que plantea un riesgo de seguridad si se abusa de su computadora local. Para cualquier implementación de producción, use siempre una autoridad de certificado de confianza Vamos a cifrar Asegure la verificación adecuada y el cumplimiento de la seguridad.

Cómo desinstalar Mkcert y eliminar la CA local

Si necesita limpiar el sistema o eliminarlo mkcert Completamente, el proceso es muy simple. Primero, puede eliminar la Autorización de Certificado Instalado Localmente (CA) ejecutando el comando:

mkcert -uninstall

Este comando elimina la CA raíz generada por MKCERT de la tienda de confianza del sistema y de la base de datos NSS de Firefox (si corresponde). Asegura que mkcert Ya no confía en su navegador o herramientas locales.

Si lo instala manualmente mkcert (Por ejemplo, descargando directamente binario), también debe eliminar el archivo ejecutable del sistema.

sudo rm /usr/local/bin/mkcert

Esto eliminará mkcert El archivo binario de su máquina local. Después de ejecutar dos comandos, mkcert y California Se eliminará por completo del sistema, sin dejar configuraciones de confianza restantes.

en conclusión

configuración https Para el desarrollo local, no tiene que ser complicado. y mkcertlos desarrolladores y los sysadmins obtienen una forma rápida y confiable de generar certificados de confianza localmente sin advertencias de navegador sin tener que luchar con OpenSSL o cadenas de certificado complejas.

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