Dovecot não consegue ler o certificado TLS

Dovecot não consegue ler o certificado TLS

No meu sistema CentOS 7, estou tentando executar o dovecot com TLS necessário. Para isso, criei minha chave privada e certificado em

[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 /]#

Para fazer o dovecot realmente carregar os arquivos, garanti que /etc/dovecot/conf.d/10-ssl.conf contenha estas linhas:

ssl=required
ssl_key=</indernet/cert/homeserver.key
ssl_cert=</indernet/cert/homeserver.crt

A parte problemática: o Dovecot não consegue inicializar, ele falha com este erro:

dovecot: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 14: ssl_key: Can't open file /indernet/cert/homeserver.key: Permission denied

Tentei modificar as permissões do arquivo do certificado e da chave (isso não deveria ser exigido de acordo comhttps://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), até 777 e nada muda. Alguém me sugeriu que poderia ser o SELinux impedindo o acesso e eu configurei unconfined_u:object_r:default_t:s0 bem como system_u:object_r:default_t:s0 como você pode ver acima. Nenhuma mudança.

Agora a parte surpreendente: Fiquei muito curioso e editei /usr/lib/systemd/system/dovecot.service para conter

ExecStart=/bin/strace /usr/sbin/dovecot

e então em /var/log/messages eu pude ver o certificado e a chave sendo acessados ​​​​e carregados. E o pombal funciona. Mas quando removo o strace novamente, fico com o mesmo problema.

O que pode estar acontecendo aqui?

Responder1

As chaves não podem ser lidas porque o SELinux negou acesso a elas.

Para consertar o problema,cópia de(usando cpou mv -Z) as chaves para um diretório onde o SELinux espera que as chaves e certificados TLS sejam armazenados, ou seja, /etc/pki/tlse seus subdiretórios. Os novos arquivos terão os contextos SELinux corretos se você usou cpou mv -Z. Em seguida, atualize os locais dos arquivos na configuração do Dovecot.

informação relacionada