Ir al contenido principal

Cómo poner HTTPS en Tomcat usando Docker en Windows

HTTPS en Tomcat 8070 usando Traefik como proxy reverso

Si quieres asegurar tu Tomcat que corre en el puerto 8070 en Windows con HTTPS, la forma más sencilla y estable es usar Traefik en Docker como proxy reverso con certificados gratuitos de Let's Encrypt.

💡 Una opción gratuita para tu dominio es DuckDNS. Por ejemplo, puedes usar midominio.duckdns.org en lugar de un dominio pago. Asegúrate de que tu subdominio apunte a tu IP pública.

Paso 1: Instalar Docker Desktop

Descarga Docker Desktop para Windows desde docker.com y activa WSL2 si Windows lo requiere.

Paso 2: Crear la carpeta del proyecto

Ejemplo:

C:\docker\traefik-proxy

Dentro, crea:

  • Archivo docker-compose.yml
  • Carpeta letsencrypt para certificados

Paso 3: Configurar docker-compose

Copia esto en docker-compose.yml:

version: "3"

services:
  traefik:
    image: traefik:v2.14
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.le.acme.tlschallenge=true"
      - "--certificatesresolvers.le.acme.email=tu-email@ejemplo.com"
      - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
    labels:
      - "traefik.http.routers.tomcat.rule=Host(`midominio.com`)"
      - "traefik.http.routers.tomcat.entrypoints=websecure"
      - "traefik.http.routers.tomcat.tls.certresolver=le"
      - "traefik.http.services.tomcat.loadbalancer.server.scheme=http"
      - "traefik.http.services.tomcat.loadbalancer.server.url=http://host.docker.internal:8070"

Recuerda cambiar midominio.com o tu subdominio de DuckDNS por tu dominio real y tu-email@ejemplo.com por tu correo.

Paso 4: Abrir los puertos 80 y 443

Para que Traefik pueda obtener el certificado de Let's Encrypt y servir HTTPS, los puertos 80 (HTTP) y 443 (HTTPS) deben estar abiertos hacia tu PC:

  • Verifica que tu firewall de Windows permita conexiones entrantes en esos puertos.
  • En tu router, configura redirección (port forwarding) de los puertos 80 y 443 hacia la IP de tu PC.

Para comprobar si están abiertos, puedes usar sitios como YouGetSignal Open Ports o CanYouSeeMe e ingresar tu IP pública y los puertos 80 y 443.

Paso 5: Levantar Traefik

En la carpeta del proyecto ejecuta:

docker-compose up -d

Paso 6: Verificar HTTPS

Accede a tu dominio con HTTPS:

https://midominio.com

Traefik redirigirá automáticamente el tráfico seguro a tu Tomcat en el puerto 8070.

Paso 7: Renovación automática

Los certificados de Let's Encrypt se renuevan automáticamente con Traefik. No necesitas hacer nada más.

¡Listo! Tu Tomcat 8070 ahora tiene HTTPS de forma estable usando Traefik como proxy reverso.

Comentarios

Entradas populares de este blog

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Tutorial: n8n con Docker Compose en Linux

Tutorial Completo: Instalar y correr n8n en Linux con Docker Compose Este tutorial te guiará paso a paso para instalar y ejecutar n8n usando Docker Compose en un sistema Linux (como Ubuntu), con buenas prácticas y configuraciones recomendadas. --- 1. Actualizar el sistema Es buena práctica empezar actualizando los paquetes y sistema: Copiar sudo apt update sudo apt upgrade -y --- 2. Instalar dependencias necesarias para Docker Copiar sudo apt install -y ca-certificates curl gnupg lsb-release --- 3. Agregar repositorio oficial de Docker Copiar sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update --- 4. ...