Zentrale Einbindung von TLS-Zertifikaten für Mail- und Webdienste

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.