4. teil: zertifikate

Die Dienste Sendmail CyrusSASL und CyrusIMAP bilden in sich bereits ein geschlossenes System, was auch soweit funktionabel ist. Halbzeit könnte man sagen.
Nur noch eine kleiner Schritt trennt uns von diesem Zustand: Die Zertifikate.

Zertifikate werden benötigt, damit die Verbindungen zum Emailserver möglichst verschlüsselt ablaufen.
Keiner will mehr unverschlüsselt seine Emails, Benutzernamen oder Passwörter über das Internet übertragen wollen :)

Ihr werdet zwar die Zertifikate selber erstellen, aber im Gegensatz zu vielen anderen Anleitung stehe ich auf korrekte und saubere Zertifikate, die schön signiert sind und sonst auch recht ordentlich daherkommen.
Ihr werdet eure eigene Certificate Authority (CA) und signiert die Zertifikate der einzelnen Dienste.
Ja, jeder Dienst bekommt ein eigenes Zertifikat!
Das öffentliche Zertifikat der CA kann verteilt werden und schon meckert kein Programm mehr über halbgare Zertifikate.

Ich habe da mal wieder was vorbereitet ;)
#> cd ~
#> fetch 'http://www.bsdbox.de/downloads/emailserver/zertifikat_erstellen.sh'
#> chmod +x zertifikat_erstellen.sh
#> edit zertifikat_erstellen.sh

Modifiziert dort bitte Zeilen 41 bis 50.
(Wundert euch nicht über die Variablennamen, die stammen aus einer Entwicklung meiner Firma.
Das Zertifikatsskript ist ein Auszug davon, was ich hier in der Form zur Verfügung stelle.)

Einmal angepast, kann das Zertifikat dann ausgeführt werden:
#> ./zertifikat_erstellen.sh
Das ganze Skript kann fast komplett mit der Entertaste abgenickt werden, da alles vorausgefüllt wird.
Hinterher habt ihr dann ein paar schöne Zertifikate samt key zur weiteren Verwendung:
#> ll ~/ssl/ssl.key/

-rw-r--r-- 1 root wheel 887 Dec 11 13:36 apache.key
-rw-r--r-- 1 root wheel 887 Dec 11 13:36 ca.key
-rw-r--r-- 1 root wheel 887 Dec 11 13:36 cyrus.key
-rw-r--r-- 1 root wheel 891 Dec 11 13:36 sendmail.key
-rw-r--r-- 1 root wheel 887 Dec 11 13:36 webmin.key

#> ll ~/ssl/ssl.crt/

-rw-r--r-- 1 root wheel 1200 Dec 11 13:36 apache.crt
-rw-r--r-- 1 root wheel 1265 Dec 11 13:36 ca.crt
-rw-r--r-- 1 root wheel 1196 Dec 11 13:36 cyrus.crt
-rw-r--r-- 1 root wheel 1212 Dec 11 13:36 sendmail.crt
-rw-r--r-- 1 root wheel 1200 Dec 11 13:36 webmin.crt

Das OpenSSL Verzeichnis erstellen:
#> mkdir -p /usr/local/etc/openssl/ssl.crt/
#> mkdir /usr/local/etc/openssl/ssl.key

Nun die Zertifikate kopieren. Originale bleiben im ~
#> cp ~/ssl/ssl.key/cyrus.key /usr/local/etc/openssl/ssl.key/
#> cp ~/ssl/ssl.key/sendmail.key /usr/local/etc/openssl/ssl.key/
#> cp ~/ssl/ssl.crt/ca.crt /usr/local/etc/openssl/ssl.crt/
#> cp ~/ssl/ssl.crt/cyrus.crt /usr/local/etc/openssl/ssl.crt/
#> cp ~/ssl/ssl.crt/sendmail.crt /usr/local/etc/openssl/ssl.crt/
#> cp ~/ssl/ssl.crt/apache.crt /usr/local/etc/apache/ssl.crt/server.crt
#> cp ~/ssl/ssl.key/apache.key /usr/local/etc/apache/ssl.key/server.key

Das eigene öffentliche CA Zertifikat (ca.crt) wird in die eigene Webseite kopiert, damit es hinterher einfacher ist, dies in diverse Zertifikatsverwaltungen importieren zu können. Das private CA Zertifikat (ca.key) unbedingt geheim und unter Verschluss halten!
#> cp ~/ssl/ssl.crt/ca.crt /usr/local/www/data-dist/

Nun noch ein paar obligatorische Berechtigungen:
#> chmod 400 /usr/local/etc/openssl/ssl.key/*
#> chmod 400 /usr/local/etc/openssl/ssl.crt/*

Die Zertifikate wären nun erstellt, verteilt und auf gehts zum nächsten Teil.

One Response to 4. teil: zertifikate

  1. Pingback: bsdbox » Blog Archive » Es geht weiter