====== Allgemein ======
Damit eine Verbindung zu einem Server nicht für Jedermann abhörbar ist wird diese verschlüsselt. Gerade bei sensitiven Daten wie z.B. den eigenen E-Mails ist dies mit Sicherheit sinnvoll, denn wer will schon, dass jeder seine E-Mails lesen kann? Aber auch verschlüsselte Verbindungen zu einem Webserver per //https// sind manchmal notwendig.
Zur Verschlüsselung dieser Verbindungen wird OpenSSL verwendet.
OpenSSL ist in der Basisinstallation von FreeBSD bereits vorhanden und kann direkt verwendet werden. Da die SSL-Verschlüsselung auf einem unsymmetrischen Verschlüsselungsverfahren beruht müssen jedoch zuerst Zertifikate erstellt werden.
====== Beglaubigte Zertifikate ======
Im Allgemeinen will man beglaubigte Zertifikate verwenden, da diese durch eine vertrauenswürdige Gesellschaft geprüft wurden. Das Zertifikat einer SSL-Verbindung weist den Server an den man eine Anfrage stellt als den aus der er vorgibt zu sein. Da hier jedoch ein Server für "private Zwecke" erstellt wird ist eine solche Zertifizierung nicht notwendig. Es sollte einem jedoch klar sein, dass die Client-Anwendungen (Mailprogramm, Browser, etc.) ggf. eine Warnung produzieren wenn der Server kein offizielles Zertifikat meldet.
====== Erstellen eines selbstbeglaubigten Zertifikats ======
Zunächst wird ein RSA-Schlüssel erzeugt.
# openssl genrsa -out mail.key 4096
Mit diesem wird nun einer Zertifikatanfrage erstellt.
# openssl req -new -key mail.key -out mail.csr
Bei den hier folgenden Abfragen kann nach eigenem Ermessen agiert werden.
'//Lediglich //Common Name (eg, YOUR name)// muss den eigenen echten Domainnamen beinhalten (z.B. example.org, www.example.org, ...)!!//' Hier können auch Wildcards verwendet werden, diese gelten dann jedoch nicht für die root-Domain (z.B. *.example.org beinhaltet www.example.org, narf.example.org, jedoch nicht example.org).
Anschließend wird die Anfrage mit dem eigenen Schlüssel unterzeichnet und somit der endgültige Zertifikat erstellt.
# openssl x509 -req -days 365 -in mail.csr -signkey mail.key -out official-mail.crt
Im aktuellen Verzeichnis ist nun das erstellte Zertifikat (official-mail.crt) und der CA-Schlüssel (mail.key) abgelegt.
====== Zertifikat und Schlüssel verschieben ======
Die erzeugten Dateien werden nun in ein Unterverzeichnis in /etc verschoben und dessen Zugriffsrechte nur auf **root** beschränkt.
# mkdir /etc/opensslcerts
# mv official-mail.crt mail.key /etc/opensslcerts
# chmod 700 /etc/opensslcerts