Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 24 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

¿Qué le parecería poder acceder a su entorno de desarrollo local a través de HTTPS sin advertencia SSL?

Como desarrollador, es posible que tenga que trabajar en varios proyectos, clientes y aplicaciones web. Uno de los requisitos previos para el desarrollo de aplicaciones web es probar los sitios web localmente en el navegador durante la fase de desarrollo. Hay muchas posibilidades de que la aplicación que está desarrollando esté protegida con un certificado SSL/TLS en un entorno de producción

¿Está de acuerdo?

¿Qué tal si tiene que probar cierta funcionalidad aprovechando la API de terceros que requiere que el origen sea https://?

Puede decir cert autofirmado y no hay nada malo en ello. Pero, ¿ha intentado acceder a un sitio implementado con un cert autofirmado? Seguirá recibiendo la advertencia de cert en Chrome y otros navegadores

¿Ve la insignia No seguro?

No es bueno, ¿verdad?

La mejor manera de tener válida SSL cert en el entorno de desarrollo es mediante la gestión de su propia CA y su posible con mkcert. Una herramienta fácil de implementar que le permite tener un cert válido en la siguiente dirección web de desarrollo local

  • ejemplo.com
  • *.ejemplo.com
  • ejemplo.test
  • localhost
  • 127.0.0.1
  • ::1

Puede implementar mkcert en macOS, Windows, CentOS, Ubuntu y otros SO basados en UNIX. El siguiente ejemplo es de Ubuntu

Lo primero es lo primero, vamos a instalar las herramientas del servicio de seguridad de red que tiene certutil para gestionar la base de datos de certificados

apt-get update
apt-get install libnss3-tools

Puede que también necesite asegurarse de que brew está instalado en su servidor. Si no es así instálelo utilizando el siguiente comando

apt-get install linuxbrew-wrapper

y, por último, instale el mkcert utilizando brew

brew install mkcert

Nota: para instalar usando brew no debe ser root. y se instala en <span class="s1">/home/$USER/.linuxbrew/bin/mkcert</span>

Donde $USER es el nombre de usuario que ha utilizado para instalar

Ahora, es el momento de instalar la CA local en el almacén de confianza del sistema

root@geekflare:~/mkcert# /home/chandan/.linuxbrew/bin/mkcert -install
Utilizando la CA local en "/root/.local/share/mkcert" ✨
¡La CA local ya está instalada en el almacén de confianza del sistema!

⚡️



root@geekflare:~/mkcert#

Y, a continuación, genere un certificado para el entorno de desarrollo. Digamos que va a tener su sitio web en ejemplo.com y puede utilizar el siguiente comando para obtener el certificado y el archivo de claves

root@geekflare:~/mkcert# /home/chandan/.linuxbrew/bin/mkcert ejemplo.com
Utilizando la CA local en "/root/.local/share/mkcert" ✨

Creado un nuevo certificado válido para los siguientes nombres 📜
 - "ejemplo.com"

El certificado está en "./ejemplo.com.pem" y la clave en "./ejemplo.com-key.pem" ✅

root@geekflare:~/mkcert#

Genial, ahora tengo un certificado válido y su archivo de claves listo para usar en mis servidores web Nginx, Apache u otros

Tomemos como ejemplo un servidor HTTP Apache. Si aún no lo ha hecho, habilite el módulo SSL y la configuración

root@geekflare:/etc/apache2# a2enmod ssl
Considerando dependencia setenvif para ssl:
Módulo setenvif ya habilitado
Considerando dependencia mime para ssl:
Módulo mime ya habilitado
Considerando dependencia socache_shmcb para ssl:
Habilitando módulo socache_shmcb.

Habilitando módulo ssl.

Consulte /usr/share/doc/apache2/README.Debian.gz sobre cómo configurar SSL y crear certificados autofirmados.
Para activar la nueva configuración, necesita ejecutar:
 systemctl restart apache2
root@geekflare:/etc/apache2#

Como se ha sugerido, reinicie el Apache

En este punto, si realiza netstat observará que el Apache se ha iniciado con el puerto seguro 443

root@geekflare:/etc/apache2# netstat -anlp |grep 443

tcp6

0 0 :::443 :::* LISTEN 11616/apache2
root@geekflare:/etc/apache2#

Pero, aún no hemos terminado. Se ha iniciado con el cert por defecto (dummy) y necesitamos reemplazarlo

Modifique default-ssl.conf utilizando el archivo vi y sustituya lo siguiente por la ruta donde se ha generado el archivo de clave y cert

SSLCertificateFile /root/mkcert/ejemplo.com.pem
SSLCertificateKeyFile /root/mkcert/ejemplo.com-key.pem

Antes de reiniciar Apache, también tiene que manipular el archivo hosts de ejemplo.com para que se resuelva en su host local en lugar de en el de Internet. Una vez que haya terminado, reinicie el servidor HTTP Apache y acceda a ejemplo.com - verá que se está sirviendo un certificado de confianza

Conclusión

Esto puede ser útil para tener un certificado de confianza en un entorno local. Lo anterior es sólo un ejemplo de example.com pero puede hacerlo para localhost y otros. Si necesita un firmante externo para emitir un certificado, consulte cómo conseguirlo de forma gratuita.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder