SystemdDoctor
служба не работает прокси сертификаты права

Обратный прокси не получает сертификаты: файл хранения недоступен

Обратные прокси с автоматическим выпуском сертификатов хранят их в одном файле и требуют от него узких прав: в нём лежат закрытые ключи. Слишком широкие права — отказ, слишком узкие относительно пользователя службы — тоже отказ.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Права на файл хранения слишком широкие

    Служба отказывается работать с файлом, доступным другим пользователям: в нём закрытые ключи.

  2. Проверка владения доменом не проходит

    Выпуск требует подтверждения владения. Закрытый порт или занятый адрес означают отказ, и сертификат не появляется.

  3. Служба не имеет права занять привилегированные порты

    Прокси должен слушать порты ниже тысячи. Без нужной возможности процесс получает отказ при открытии слушателя.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Сообщения о выпуске сертификатов и правах.

journalctl -u traefik -n 40 --no-pager | grep -iE "acme|permission"

Права и владелец файла хранения сертификатов.

sudo ls -l /etc/traefik/acme.json

Пользователь службы и выданные возможности.

systemctl show traefik -p User -p AmbientCapabilities

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Права на файл хранения слишком широкие
Почему происходит
Служба отказывается работать с файлом, доступным другим пользователям: в нём закрытые ключи.
Как проверить
Посмотрите права файла и пользователя службы.
sudo ls -l /etc/traefik/acme.json 2>/dev/null
systemctl show traefik -p User -p StateDirectory 2>/dev/null
Как исправить
Установите права только для владельца и сделайте владельцем пользователя службы. Никакой другой пользователь этот файл видеть не должен.
sudo chmod 600 /etc/traefik/acme.json && sudo chown traefik: /etc/traefik/acme.json
2. Проверка владения доменом не проходит
Почему происходит
Выпуск требует подтверждения владения. Закрытый порт или занятый адрес означают отказ, и сертификат не появляется.
Как проверить
Посмотрите сообщения о попытках выпуска.
journalctl -u traefik -n 40 --no-pager | grep -iE "acme|challenge|certificate"
Как исправить
Обеспечьте доступность способа подтверждения: свободный порт для проверки по сети либо доступ к управлению зоной для проверки записями.
3. Служба не имеет права занять привилегированные порты
Почему происходит
Прокси должен слушать порты ниже тысячи. Без нужной возможности процесс получает отказ при открытии слушателя.
Как проверить
Посмотрите возможности службы и слушателей.
systemctl show traefik -p AmbientCapabilities -p User 2>/dev/null
sudo ss -tlnp | grep -E ":80|:443"
Как исправить
Выдайте службе возможность занимать привилегированные порты вместо запуска от root. Это заметно уменьшает последствия возможной уязвимости.
[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE

Пример вывода

Права на файл хранения слишком широкие. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

traefik[7800]: level=error msg="Unable to get ACME account: permissions 644 for /etc/traefik/acme.json are too open, please use 600"
traefik[7800]: level=error msg="Unable to obtain ACME certificate for domains \"example.org\"" 

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация Traefik: хранение сертификатов документация программы
    сверено 15 сентября 2026
  • systemd.exec(5)
    AmbientCapabilities= и привилегированные порты.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено файлом хранения с широкими правами.
    собственная проверка, systemd 255
    сверено 15 сентября 2026