Dovecot kann das TLS-Zertifikat nicht lesen

Dovecot kann das TLS-Zertifikat nicht lesen

Auf meinem CentOS 7-System versuche ich, Dovecot mit erforderlichem TLS auszuführen. Dafür habe ich meinen privaten Schlüssel und mein Zertifikat in

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

Damit Dovecot die Dateien tatsächlich lädt, habe ich sichergestellt, dass /etc/dovecot/conf.d/10-ssl.conf diese Zeilen enthält:

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

Der problematische Teil: Dovecot kann nicht gestartet werden, es schlägt mit diesem Fehler fehl:

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

Ich habe versucht, die Dateiberechtigungen des Zertifikats und des Schlüssels zu ändern (dies sollte lauthttps://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/), sogar auf 777 und nichts ändert sich. Jemand meinte, es könnte SELinux sein, das den Zugriff verhindert, und ich habe unconfined_u:object_r:default_t:s0 sowie system_u:object_r:default_t:s0 konfiguriert, wie Sie oben sehen können. Keine Änderung.

Nun der überraschende Teil: Ich wurde sehr neugierig und habe /usr/lib/systemd/system/dovecot.service bearbeitet, um es einzuschließen

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

und dann konnte ich in /var/log/messages sehen, wie auf das Zertifikat und den Schlüssel zugegriffen und diese geladen wurden. Und Dovecot funktioniert. Aber wenn ich Strace wieder entferne, habe ich immer noch das gleiche Problem.

Was kann hier los sein?

Antwort1

Die Schlüssel können nicht gelesen werden, da SELinux den Zugriff darauf verweigert hat.

Um das Problem zu lösen,Kopieren(mit cpoder mv -Z) die Schlüssel zu einem Verzeichnis, in dem SELinux die Speicherung von TLS-Schlüsseln und -Zertifikaten erwartet, d. h. /etc/pki/tlsund dessen Unterverzeichnisse. Die neuen Dateien haben die richtigen SELinux-Kontexte, wenn Sie cpoder verwendet haben mv -Z. Aktualisieren Sie dann die Speicherorte der Dateien in Ihrer Dovecot-Konfiguration.

verwandte Informationen