Traefik и Let's Encrypt: как я нашел ошибку в логах прошлого

Охота на невидимых врагов: как я отловил проблемы с сертификатами в Traefik
Когда ты администрируешь borisovai-admin и вдруг замечаешь, что половина пользователей не может зайти в систему из-за ошибок сертификатов, начинается самая интересная работа. Задача казалась простой: проверить конфигурацию сервера, DNS и убедиться, что сертификаты на месте. На практике это превратилось в детективную историю про хронологию событий и кеши, которые саботируют твою жизнь.
Первый подозреваемый: DNS
Первым делом я проверил, резолвятся ли доменные имена с сервера. Оказалось, что DNS работает — это был хороший знак. Но почему Traefik выглядит так, будто ему не хватает сертификатов? Я полез в acme.json, где Traefik хранит выданные Let’s Encrypt сертификаты.
И вот тут началось самое интересное.
Сюрприз в acme.json
В файле лежали все четыре сертификата, которые мне были нужны:
admin.borisovai.tech— Let’s Encrypt R12, выдан 4 февраля, истекает 5 маяadmin.borisovai.ru— Let’s Encrypt R12, выдан 8 февраля, истекает 9 маяauth.borisovai.tech— Let’s Encrypt R13, выдан 8 февраля, истекает 9 маяauth.borisovai.ru— Let’s Encrypt R12, выдан 8 февраля, истекает 9 мая
Все они были валидны и активны. Traefik их отдавал при подключении. Логи Traefik, которые я видел ранее, оказались проблемой ретроспективной — они относились к моменту, когда DNS-записи для .ru доменов ещё не пропагировались по сети. Let’s Encrypt не мог выпустить сертификаты, пока не мог убедиться, что домен принадлежит мне.
Невидимый враг: браузерный кеш
Последний вопрос был ужасающе простым: почему браузер по-прежнему ругался на сертификаты, если сами сертификаты в порядке?
DNS кеш. Браузер запомнил старую информацию и упорно её использовал.
Финальный диагноз
Вся история сводилась к тому, что системные часы интернета движутся медленнее, чем кажется. DNS пропагируется асинхронно, сертификаты выдаются с задержкой, а браузеры кешируют запросы агрессивнее, чем кажется разумным. Решение? Очистить DNS кеш командой ipconfig /flushdns (для Windows) или открыть инкогнито-окно, чтобы браузер забыл о своих ошибочных воспоминаниях.
Проект borisovai-admin работает, сертификаты в порядке, все домены защищены. Ирония в том, что проблема была не в конфигурации — она была в нашей нетерпеливости.
Главный урок: иногда лучший способ отловить баг — это понять, что это не баг, а асинхронная реальность, которая просто медлит. 😄
Метаданные
- Session ID:
- grouped_borisovai-admin_20260208_2315
- Branch:
- main
- Dev Joke
- 409: конфликт между тем, что хочет заказчик, и реальностью.
Часть потока:
Разработка: borisovai-admin