Dovecot no puede leer el certificado TLS

Dovecot no puede leer el certificado TLS

En mi sistema CentOS 7, estoy intentando ejecutar dovecot con TLS requerido. Para eso, creé mi clave privada y mi certificado en

[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 que dovecot realmente cargue los archivos, me aseguré de que /etc/dovecot/conf.d/10-ssl.conf contenga estas líneas:

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

La parte problemática: Dovecot no puede iniciarse, falla con este error:

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

Intenté modificar los permisos de archivo del certificado y de la clave (esto no debería ser necesario segúnhttps://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), incluso a 777 y nada cambia. Alguien me sugirió que podría ser SELinux lo que impide el acceso y configuré unconfined_u:object_r:default_t:s0 así como system_u:object_r:default_t:s0 como puedes ver arriba. Ningún cambio.

Ahora la parte sorprendente: Sentí mucha curiosidad y edité /usr/lib/systemd/system/dovecot.service para contener

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

y luego en /var/log/messages pude ver que se accedía y cargaba el certificado y la clave. Y el palomar funciona. Pero cuando vuelvo a quitar el rastro, me quedo con el mismo problema.

¿Qué puede estar pasando aquí?

Respuesta1

Las claves no se pueden leer porque SELinux ha negado el acceso a ellas.

Para solucionar el problema,Copiar(usando cpo mv -Z) las claves de un directorio donde SELinux espera que se almacenen las claves y los certificados TLS, es decir, /etc/pki/tlsy sus subdirectorios. Los nuevos archivos tendrán los contextos SELinux correctos si utilizó cpo mv -Z. Luego actualice las ubicaciones de los archivos en su configuración de Dovecot.

información relacionada