В моей системе CentOS 7 я пытаюсь запустить dovecot с обязательным TLS.
Для этого я создал свой закрытый ключ и сертификат в
[root@homeserver /]# ls -lZ indernet/cert/homeserver.*
-р--р--р--. root certuser system_u:object_r:default_t:s0 indernet/cert/homeserver.crt
-р--р-----. root certuser system_u:object_r:default_t:s0 indernet/cert/homeserver.key
[root@homeserver /]#
Чтобы dovecot действительно загружал файлы, я убедился, что /etc/dovecot/conf.d/10-ssl.conf содержит следующие строки:
SSL = требуется
ssl_key=</indernet/cert/homeserver.key
ssl_cert=</indernet/cert/homeserver.crt
Проблемная часть: Dovecot не запускается, вылетает с этой ошибкой:
dovecot: doveconf: Fatal: ошибка в файле конфигурации /etc/dovecot/conf.d/10-ssl.conf, строка 14: ssl_key: не удается открыть файл /indernet/cert/homeserver.key: в доступе отказано
Я попытался изменить права доступа к файлу сертификата и ключа (это не должно требоваться в соответствии с https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), даже на 777 и ничего не меняется.
Кто-то предположил, что SELinux блокирует доступ, и я настроил unconfined_u:object_r:default_t:s0, а также system_u:object_r:default_t:s0, как вы можете видеть выше. Без изменений.
Теперь удивительная часть: мне стало очень любопытно, и я отредактировал /usr/lib/systemd/system/dovecot.service, чтобы он содержал
ExecStart=/bin/strace /usr/sbin/dovecot
а затем в /var/log/messages я мог видеть, что сертификат и ключ получают доступ и загружаются. И голубятня работает. Но когда я снова удаляю strace, у меня остается та же проблема.
Что здесь может происходить?