Sitios web locales con dominios personalizados y HTTPS usando Caddy Server - Amit Merchant - Un blog sobre PHP, JavaScript, etc.

Sitios web locales con dominios personalizados y HTTPS usando Caddy Server - Amit Merchant - Un blog sobre PHP, JavaScript, etc.

Hay momentos en los que le gustaría que sus sitios web locales sean accesibles a través de un nombre de dominio personalizado y también a través de HTTPS. Esto es especialmente útil cuando se trabaja en un proyecto que requiere un nombre de dominio personalizado y HTTPS para funcionar correctamente.

Por ejemplo, es posible que lo necesite para probar sus aplicaciones web progresivas (PWA) que requieren un nombre de dominio personalizado y HTTPS para funcionar correctamente. Pero incluso si no está trabajando en PWA, es bueno tener esas cosas configuradas para sus sitios web locales.

Para que sus sitios web locales existentes cumplan con estos requisitos, puede usar un servidor web llamado Caddy. Es un servidor web ligero que es fácil de instalar y configurar.

El principal punto de venta de Caddy es que habilita automáticamente HTTPS para todos sus sitios web de forma predeterminada.

Veremos cómo puede instalar Caddy en su sistema y configurarlo para atender sus sitios web locales a través de un nombre de dominio personalizado y HTTPS.

Índice
  1. Instalación del carro
  2. Configuración del carro
  3. Instalando mkcert
  4. Configuración de Caddy para HTTPS

Instalación del carro

Caddy está disponible para todas las plataformas principales, incluidas Windows, macOS y Linux. Puede consultar las instrucciones de instalación de su plataforma.

En mi caso lo instalé usando Homebrew en Ubuntu así.

Para verificar si Caddy está instalado correctamente, puede ejecutar el siguiente comando.

Esto debería imprimir la versión de Caddy instalada en su sistema.

Configuración del carro

Ahora quería servir uno de mis sitios web locales a través de un nombre de dominio personalizado y HTTPS.

Así que creé un archivo llamado Caddyfile (sin ninguna extensión) en la raíz del directorio de mi proyecto y agregué la siguiente configuración allí.

notepad.localhost {
	reverse_proxy localhost:3333
}

Como puede ver, mi sitio web local se está ejecutando en localhost:3333 a través de un nombre de dominio personalizado llamado notepad.localhost.

Caddy funciona aquí como un proxy inverso. Proxies solicitudes de notepad.localhost para localhost:3333 donde se ejecuta mi sitio web local.

Una vez hecho esto, puede iniciar el servidor Caddy ejecutando el siguiente comando en el directorio donde se encuentra el Caddyfile se encuentra.

Esto iniciará el servidor Caddy y debería poder acceder a su sitio web local a través del nombre de dominio personalizado que configuró. Pero aún no funcionará a través de HTTPS.

Nota: Dependiendo del sistema, Caddy puede necesitar permiso para vincularse a puertos bajos. Una forma de hacer esto en Linux es usar setcap:

$ sudo setcap cap_net_bind_service=+ep $(which caddy)

Dado que Caddy usa HTTPS de forma automática y predeterminada, sirve direcciones IP locales/internas y nombres de host a través de HTTPS mediante certificados autofirmados en los que se confía automáticamente a nivel local (si está permitido).

Pero los certificados autofirmados de Caddy no funcionaron correctamente para mí. Así que tuve que crear mis propios certificados autofirmados y usarlos en su lugar.

Y lo hice usando una herramienta llamada mkcert.

Instalando mkcert

Para crear mis propios certificados autofirmados, utilicé una herramienta llamada mkcert, que es una herramienta sencilla para crear certificados de desarrollo de confianza local.

Puedes instalarlo usando Homebrew como este.

Una vez instalado, puede ejecutar el siguiente comando para crear un certificado autofirmado para su nombre de dominio personalizado.

En mi caso, quería crear un certificado para notepad.localhost así que ejecuté el siguiente comando.

Esto creará dos archivos en el directorio actual.

  • notepad.localhost.pem - El archivo del certificado.
  • notepad.localhost-key.pem - El archivo de clave privada.

Podemos usar estos archivos para servir nuestro sitio web local a través de HTTPS usando Caddy.

Configuración de Caddy para HTTPS

Una vez que tenga el certificado y los archivos de clave privada, puede configurar Caddy para servir su sitio web local a través de HTTPS agregando la siguiente configuración en su Caddyfile.

notepad.localhost {
	tls ./notepad.localhost.pem ./notepad.localhost-key.pem
	reverse_proxy localhost:3333
}

Como puede ver, usamos el tls directiva para decirle a Caddy que use el certificado y los archivos de clave privada que generamos usando mkcert.

Una vez hecho esto, puede reiniciar (terminar la instancia existente) el servidor Caddy nuevamente ejecutando el siguiente comando.

Y es todo. Ahora debería poder acceder a su sitio web local a través del nombre de dominio personalizado que configuró y también a través de HTTPS con un certificado válido.

Sitio web local a través de HTTPS

Si quieres conocer otros artículos parecidos a Sitios web locales con dominios personalizados y HTTPS usando Caddy Server - Amit Merchant - Un blog sobre PHP, JavaScript, etc. puedes visitar la categoría Código.

Deja un comentario

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

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas