LINUX.ORG.RU

Dovecot и сертификаты Letsencrypt (Can't open file)

 ,


0

1

Стоит связка Dovecot, получил сертификаты от Letsencrypt, но сертификаты работают только если скопировать их в папку довекота. Если же указывать в конфигах папку /etc/letsencrypt/domain/cert.pem, то довекот матюкается, что не может прочитать файл. Символические ссылки тоже не работают (хотя довекот после установки имеет две ссылки на snakeoil сертификаты, и с ними работает «искаропки» что очень странно).

SSL конфиг Dovecot:
# вот так не работает
ssl_cert = </etc/letsencrypt/archive/hbcenter.ru/fullchain2.pem
ssl_key = </etc/letsencrypt/archive/hbcenter.ru/privkey2.pem
# вот так работает
ssl_cert = </etc/dovecot/private/fullchain.pem
ssl_key = </etc/dovecot/private/privkey.pem

Например в логе dovecot:
doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 15: ssl_cert: Can't open file

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

Кто то сталкивался, как вышли из ситуации?

P.S. Забыл сказать, у меня Ubuntu 18.04.1 LTS

★★

Последнее исправление: Vint (всего исправлений: 2)

А ты уверен, что пользователь довкота может читать эти файлы? Проверь, например, права, а лучше выполни su и сделай банальный cat

XMs ★★★★★
()
Ответ на: комментарий от XMs

права на файлы сертификата и ключа в папке Letsencrypta:

-rw-r--r-- 1 root root 1923 ноя 28 20:58 cert2.pem
-rw-r--r-- 1 root root 1647 ноя 28 20:58 chain2.pem
-rw-r--r-- 1 root root 3570 ноя 28 20:58 fullchain2.pem
-rw-r--r-- 1 root root 1704 ноя 28 20:58 privkey2.pem

как видно из вывода ls, читать могут все

Vint ★★
() автор топика
Ответ на: комментарий от Vint

как видно из вывода ls, читать могут все

А рекурсивно директории, в которых это всё лежит, все могут читать? Сомневаюсь.

То есть, если права на чтение файла есть, а на директорию - нет, то файл прочитать не выйдет.

Deleted
()
Ответ на: комментарий от Deleted

А рекурсивно директории, в которых это всё лежит, все могут читать?

права на родительские директории rwx:r_x:r_x
читают все (выставил для эксперимента, потом верну как было в rwx:---:---)
эффект тот же

Vint ★★
() автор топика
Ответ на: комментарий от gruy

apparmor

Опа! А я про него совсем забыл, вот склероз. Блин он у меня включен и настроен.
Щас добавлю пути в профиль dovecota

Vint ★★
() автор топика
Последнее исправление: Vint (всего исправлений: 1)
Ответ на: комментарий от Deleted

Кстати, доступ к ключам для всех - это не очень хорошая практика.

я же вроде написал

(выставил для эксперимента, потом верну как было в rwx:---:---)

Vint ★★
() автор топика
Ответ на: комментарий от gruy

Спасибо что напомнили, старею :-(
Дело было в профиле apparmora. Добавил в абстракции пути к файлам Letsencrytp и всё забегало

Спасибо. Тема закрыта

Vint ★★
() автор топика
Ответ на: комментарий от Vint

Понимаю, что опоздал в тему, но...

У меня была похожая проблема с OpenLDAP. Там хуже: сертификаты читаются демоном не из-под root'а. Решение:

# cat >> /etc/letsencrypt/renewal-hooks/post/renew-ldap.sh <<"EOF"
#!/bin/sh

cp -L \
    /etc/letsencrypt/live/ldap.qweqweqwe.com/fullchain.pem \
    /etc/letsencrypt/live/ldap.qweqweqwe.com/privkey.pem \
    /etc/ldap/ssl/
systemctl restart slapd
EOF
chmod +x /etc/letsencrypt/renewal-hooks/post/renew-ldap.sh

Права выставляю на /etc/ldap/ssl/ чтобы только openldap мог пролезть. И он оттуда успешно читает сертификаты.

AEP ★★★★★
()
Ответ на: комментарий от AEP

Думал сделать подобный костыль в случае если не найду нормального выхода. Но как оказалось, всё дело было во мне :-)

Vint ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.