У меня есть настройка Docker с Traefik в качестве обратного прокси.
У меня есть один контейнер NGINX, обслуживающий статическую страницу.
Предполагается, что два домена (example-A.com и example-B.de) будут отображать одну и ту же статическую страницу.
Хотя example-A.com работает как положено, example-B.de получает ошибку NET: ERR_CERT_AUTHORITY_INVALID.
example-A.com зарегистрирован в доменах Google.
Его A-запись с именем «@» указывает на IP-адрес моего хоста Docker.
example-B.de зарегистрирован у другого регистратора доменов.
Его A-запись указывает на IP-адрес моего хоста Docker (т. Е. Тот же IP, что и на example-A.com). Я не могу настроить имя "@" с этим регистратором, я могу только установить запись A и целевой IP.
Мой traefik.toml:
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.dashboard]
address = ":8080"
[entryPoints.dashboard.auth]
[entryPoints.dashboard.auth.basic]
users = ["admin:xxxxxxxxx"]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[api]
entrypoint="dashboard"
[acme]
email = "xxxxxxx@gmail.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
[docker]
domain = "my-main-domain.net"
watch = true
network = "traefik"
Мой docker-compose.yml:
version: "3"
services:
my-web:
image: nginx:alpine
container_name: my-web
volumes:
- /home/my-directory:/usr/share/nginx/html:ro
networks:
- traefik
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:example-B.de,example-A.com
restart: always
jupyter:
[config here... with "traefik.frontend.rule=Host:subdomain1.my-main-domain.net"... remainder of config]
ghost:
[config here... with "traefik.frontend.rule=Host:subdomain2.my-main-domain.net"... remainder of config]
networks:
traefik:
external: true
Странное поведение заключается в том, что example-A.com работает должным образом (HTTP и HTTPS), а example-B.de завершается ошибкой с NET: ERR_CERT_AUTHORITY_INVALID (HTTPS; HTTP направляется на HTTPS, т.е. та же ошибка), несмотря на точно такую же настройку в docker-compose.yml в том же контейнере на том же хосте Docker (см. traefik.frontend.rule) и работает под тем же traefik.toml.
Другое странное поведение: я получаю ошибку NET: ERR_CERT_AUTHORITY_INVALID на моем мобильном телефоне (Chrome). На моем компьютере (Chrome) отображаются «404 страница не найдена» (из Traefik) и «Не защищено» в строке URL с подробной информацией «TRAEFIK DEFAULT CERT - самозаверяющий корневой сертификат - этот сертификат не был подписан третьей стороной ».
Другие две docker-службы в моем docker-compose.yml (jupyter и ghost) работают как положено.
Я перезапустил traefik и запустил докер и запустил docker-compose.yml.
Единственное отличие, которое я могу заметить, - это другой регистратор домена и разница в записях DNS A, как описано выше.
Кажется, проблема связана с SSL, однако, насколько мне известно (ограничено), регистратор домена не имеет никакого отношения к сертификатам SSL. Кроме того, настройка DNS здесь не является проблемой, так как браузер правильно разрешает домен, но затем отображает ошибку вместо страницы.
Может ли кто-то определить проблему в моих настройках или конфигах и может указать мне исправление или дальнейшее расследование?