Configurar certificados SSL tanto en WSL2 como en Windows puede ser un verdadero dolor de cabeza si no entiendes completamente cómo funcionan estos certificados. Las complejidades de las autoridades de certificación, las diferencias entre los almacenes de certificados del sistema y del usuario, y las sutilezas de las cadenas de certificados a menudo generan problemas inesperados. Ya sea que estés utilizando mkcert en Windows o integrándolo con tu entorno en WSL2, comprender estos detalles es clave para lograr una configuración segura y sin complicaciones.
Vamos a repasar el proceso de instalación de DDEV en un entorno Windows utilizando WSL2 y Docker. El procedimiento utiliza Chocolatey para gestionar la instalación de herramientas adicionales y ejecuta un script que configura DDEV junto con sus dependencias.
1. Verificar y Ajustar la Política de Ejecución
Antes de ejecutar scripts descargados de Internet, en PowerShell, es importante comprobar tu política de ejecución actual. Ejecuta:
La salida esperada es RemoteSigned (o alguna otra configuración definida en tu sistema).
Para permitir temporalmente la ejecución de scripts en la sesión actual, ejecuta:
Nota: Es posible que aparezca un mensaje indicando que la política definida a nivel de proceso es ignorada debido a una política más específica. Esto es normal y solo afecta a la sesión actual.
2. Instalar Chocolatey
Chocolatey es un gestor de paquetes para Windows que simplifica la instalación de herramientas. En PowerShell, ejecuta:
Este comando descarga y configura los archivos de instalación necesarios. También añade el directorio C:\ProgramData\chocolatey\bin
a tu PATH (si no estaba presente). Una vez completado, verifica la instalación ejecutando:
Esto mostrará la ayuda y las opciones disponibles para Chocolatey.
3. Instalar mkcert para Certificados SSL
mkcert se utiliza para generar fácilmente certificados SSL locales. En PowerShell, instálalo utilizando Chocolatey:
Luego, ejecuta:
Este paso crea una Autoridad Certificadora (CA) local e instala el certificado raíz en el almacén de certificados de Windows, de modo que los navegadores confíen en los certificados generados.
4. Configurar la Variable de Entorno CAROOT
Para asegurarte de que tanto Windows como WSL2 reconozcan la CA creada por mkcert, es necesario definir la variable de entorno CAROOT. En PowerShell, ejecuta:
Este comando asigna la ruta de la CA (obtenida mediante mkcert -CAROOT
) a la variable CAROOT
, la guarda de forma persistente y la añade a la variable WSLENV
para que se propague en tu entorno WSL2.
5. Ejecutar el Script de Instalación de DDEV para WSL2 Docker Inside
Con Chocolatey y mkcert configurados, ejecuta el siguiente comando en PowerShell para instalar DDEV y sus dependencias (como gsudo, ngrok y nssm):
Descripción del Proceso:
- Instala o actualiza paquetes: ddev, gsudo, ngrok y nssm a través de Chocolatey.
- Descarga y configura las herramientas necesarias para integrar Windows, WSL2 y Docker.
- Actualiza los paquetes requeridos en el entorno Ubuntu (dentro de WSL2) que son necesarios para DDEV.
Advertencia: Durante la ejecución, es posible que veas mensajes relacionados con una "solicitud de reinicio pendiente". Esto es solo una advertencia y, en muchos casos, se puede ignorar; sin embargo, si surgen problemas, considera reiniciar el sistema.
6. Verificar la Instalación y Configuración de DDEV en WSL2
Una vez completada la instalación, en WSL2, verifica que DDEV esté instalado correctamente ejecutando:
La salida debería mostrar:
- La versión de DDEV (por ejemplo, v1.24.4 o superior).
- La arquitectura (por ejemplo, amd64).
- Información sobre los contenedores asociados, como la base de datos, el servidor web, el router, etc.
- La versión de Docker instalada y su integración con WSL2.
7. Verificar la Ubicación del Certificado en Windows
Luego, en PowerShell, verifica la ubicación del certificado con el siguiente comando:
Esto debería devolver una ruta similar a:
Donde se encuentran los archivos de la CA (por ejemplo, el certificado raíz).
8. Configurar mkcert en WSL2
Para que WSL2 pueda utilizar la CA generada en Windows, debemos configurar la variable de entorno CAROOT.
En la terminal de WSL2, asigna la variable CAROOT
con la ruta de la CA de Windows. Ejecuta el siguiente comando, reemplazando tu_usuario
con tu nombre de usuario de Windows:
De esta manera, cada vez que abras WSL2, la variable CAROOT
se establecerá correctamente. Para confirmar que la variable se asignó correctamente, utiliza el comando:
Para asegurarte de que el valor de la variable se asignó correctamente, deberías ver una línea al final del resultado similar a:
export CAROOT=/mnt/c/Users/tu_usuario/AppData/Local/mkcert
9. Instalar los Certificados en WSL2
Con la variable CAROOT
establecida, en la terminal de WSL2 ejecuta:
Este comando se encargará de registrar el certificado raíz en el almacén de certificados de WSL2 (y en las aplicaciones que lo utilicen).
10. Reiniciar DDEV
Para que DDEV aplique la nueva configuración de certificados, sigue estos pasos:
Detén todos los proyectos de DDEV:
Reinicia el proyecto deseado:
Durante el inicio, DDEV configurará sus contenedores para utilizar los certificados SSL, ya sean generados automáticamente o personalizados en el directorio .ddev/ssl
.
11. Probar HTTPS
Abre tu navegador y accede a la URL de tu proyecto (por ejemplo, https://tu_proyecto.ddev.site
).
Verifica que el certificado sea reconocido y que no muestre advertencias de seguridad.
Siguiendo estos pasos, podrás instalar y configurar DDEV con WSL2 y Docker en Windows sin mayores complicaciones. Configurar correctamente el certificado SSL con mkcert te permite trabajar de manera segura con HTTPS en tu entorno de desarrollo.