Zentrale Einbindung von TLS-Zertifikaten für Mail- und Webdienste
Zentrale Einbindung eines eigenen TLS-Zertifikats für Mail- und Webdienste
Diese Anleitung beschreibt die strukturierte Einbindung eines TLS-Zertifikats für die Dienste Postfix, Dovecot und Apache2 mit zentralem Zertifikatsverzeichnis. Optional wird gezeigt, wie man das CA-Zertifikat systemweit installiert.
Zertifikatsdateien
Folgende Dateien liegen vor:
- ca.crt – Root- oder Intermediate-CA, die das Zertifikat signiert hat
- mail.it1XX.int.crt – das eigentliche Serverzertifikat
- mail.it1XX.int.key – der private Schlüssel
- mail.it1XX.int.csr – (optional) Certificate Signing Request, wird nicht mehr benötigt
Zentrales Verzeichnis anlegen
- Zertifikate werden unter folgendem Pfad zentral abgelegt:
/etc/ssl/mail.it1XX.int/
- Dorthin werden die Dateien verschoben:*
mv ca.crt /etc/ssl/mail.it1XX.int/ mv mail.it1XX.int.key /etc/ssl/mail.it1XX.int/privkey.pem cat mail.it1XX.int.crt ca.crt > /etc/ssl/mail.it1XX.int/fullchain.pem
- Rechte anpassen:*
chown root:root /etc/ssl/mail.it1XX.int/* chmod 600 /etc/ssl/mail.it1XX.int/privkey.pem
Apache2 einbinden
In der vHost-Konfiguration (z. B. unter /etc/apache2/sites-available/mail.it1XX.int.conf):
SSLEngine on SSLCertificateFile /etc/ssl/mail.it1XX.int/fullchain.pem SSLCertificateKeyFile /etc/ssl/mail.it1XX.int/privkey.pem SSLCACertificateFile /etc/ssl/mail.it1XX.int/ca.crt
Postfix einbinden
In der Datei /etc/postfix/main.cf:
smtpd_tls_cert_file = /etc/ssl/mail.it1XX.int/fullchain.pem smtpd_tls_key_file = /etc/ssl/mail.it1XX.int/privkey.pem smtpd_tls_CAfile = /etc/ssl/mail.it1XX.int/ca.crt
Hinweis: Obwohl smtpd im Chroot läuft, müssen die TLS-Dateien nicht im Chroot liegen, da sie vom Hauptprozess geladen werden.
Dovecot einbinden
In der Datei /etc/dovecot/conf.d/10-ssl.conf:
ssl = required ssl_cert = </etc/ssl/mail.it1XX.int/fullchain.pem ssl_key = </etc/ssl/mail.it1XX.int/privkey.pem ssl_ca = </etc/ssl/mail.it1XX.int/ca.crt
Dienste neu starten
systemctl restart postfix systemctl restart dovecot systemctl restart apache2
Optional: Systemweite Einbindung der CA
Wenn die ca.crt nicht von einer öffentlichen CA stammt, kann sie systemweit als vertrauenswürdige Zertifizierungsstelle eingebunden werden:
cp /etc/ssl/mail.it1XX.int/ca.crt /usr/local/share/ca-certificates/mail-it1XX-ca.crt update-ca-certificates
Danach steht die CA systemweit bereit, z. B. für curl, wget oder andere Dienste.
Fazit
Mit dieser Methode sind alle relevanten Dienste zentral abgesichert, die CA ist optional systemweit eingebunden, und die Zertifikatsdateien befinden sich an einem konsistenten, wartbaren Ort.