Имеется некий сайт terminator.example.com
Необходимо расшифровывать SSL-входящий трафик и передать его дальше по сети в незашифрованном виде.
Дешифрацией из коробки занимается балансировщик Traefik.
Nginx находится за Traefik и должен получать только незашифрованные данные.
docker-compose.yml
services:
traefik:
image: traefik:v3.1
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.email=terminator@example.com" # Ваш email для уведомлений
- "--certificatesresolvers.myresolver.acme.storage=/acme.json" # Хранение сертификатов
- "--certificatesresolvers.myresolver.acme.httpChallenge.entryPoint=web" # Добавляем httpChallenge
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik.yml:/etc/traefik/traefik.yml"
- "./letsencrypt/acme.json:/acme.json" # Монтируем файл для хранения сертификатов
nginx:
image: nginx:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.terminator-router.rule=Host(`terminator.example.com`)" # Wildcard
- "traefik.http.routers.terminator-router.entrypoints=web"
- "traefik.http.routers.terminator-router.service=terminator-service"
- "traefik.http.services.terminator-service.loadbalancer.server.port=80" # Убедитесь, что NGINX слушает на 80 порту
volumes:
- ./html:/html # Подключаем локальную директорию html к контейнеру
- ./nginx/nginx.conf:/etc/nginx/nginx.conf # Подключаем конфигурационный файл
traefik.yml
api:
dashboard: true
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
providers:
docker:
exposedByDefault: false
certificatesResolvers:
myresolver:
acme:
email: terminator@example.com
storage: acme.json
httpChallenge:
entryPoint: web
log:
level: DEBUG
nginx.conf
server {
listen 80;
server_name terminator.example.com ;
location / {
return 200 "Hello, World!"; # Просто для проверки работы
}
Запускаю контейнер. Смотрю в файл acme.json. Сертификаты подтянулись.
Делаю проверку на входящий график. . Здесь все отлично, нешифрованный трафик ходит.
curl -I http://terminator.example.com
HTTP/1.1 200 OK
Шифрую входящий график. Traefik трафик кушает, но не дешифрует. Что я упустил?
curl -I https://terminator.example.com
HTTP/1.1 404 Not Found