Pe sistemul meu CentOS 7, încerc să rulez dovecot cu TLS necesar.
Pentru asta, mi-am creat cheia privată și certificatul în
[root@homeserver /]# ls -lZ indernet/cert/homeserver.*
-r--r--r--. root certuser system_u:object_r:default_t:s0 indernet/cert/homeserver.crt
-r--r-----. root certuser system_u:object_r:default_t:s0 indernet/cert/homeserver.key
[root@homeserver /]#
Pentru ca dovecot să încarce efectiv fișierele, m-am asigurat că /etc/dovecot/conf.d/10-ssl.conf conține aceste linii:
ssl=necesar
ssl_key=</indernet/cert/homeserver.key
ssl_cert=</indernet/cert/homeserver.crt
Partea problematică: Dovecot nu poate porni, eșuează cu această eroare:
dovecot: doveconf: Fatal: Eroare în fișierul de configurare /etc/dovecot/conf.d/10-ssl.conf linia 14: ssl_key: Nu se poate deschide fișierul /indernet/cert/homeserver.key: Permisiune refuzată
Am încercat să modific permisiunile de fișier ale certificatului și cheii (acest lucru nu ar trebui să fie necesar conform https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), chiar și la 777 și nimic nu se schimbă.
Cineva mi-a sugerat că ar putea fi SELinux care împiedică accesul și am configurat unconfined_u:object_r:default_t:s0, precum și system_u:object_r:default_t:s0, așa cum puteți vedea mai sus. Nicio schimbare.
Acum partea surprinzătoare: Am devenit foarte curios și am editat /usr/lib/systemd/system/dovecot.service pentru a conține
ExecStart=/bin/strace /usr/sbin/dovecot
și apoi în /var/log/messages am putut vedea că certificatul și cheia sunt accesate și încărcate. Și porumbelul funcționează. Dar când elimin din nou strace, rămân cu aceeași problemă.
Ce se poate întâmpla aici?