У меня есть установка 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 = "[email protected]"
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-compose.yml (jupyter и ghost) работают должным образом.
Я перезапустил traefik и запустил докер на docker-compose.yml.
Единственная разница, которую я могу заметить, - это другой регистратор домена и разница в записях DNS A, как описано выше.
Проблема, похоже, связана с SSL, однако, насколько мне известно (ограниченно), регистратор домена не имеет никакого отношения к сертификатам SSL. Кроме того, настройка DNS, похоже, не является проблемой, поскольку браузер правильно разрешает домен, однако затем показывает ошибку вместо страницы.
Может ли кто-нибудь обнаружить проблему в моих настройках или конфигурациях и указать мне, как исправить или как провести дальнейшее расследование?