Hier beschreibe ich die Erstellung eines lokalen Zertifikates 'exim.pem', wie man es für den mit SSL verschlüsselten Versand benötigt. Dabei beziehe ich mich auf das 'certs-Paket' in Version 1.2.7, da diese Version Mindestvoraussetzung für Versand mit SSL ist.

Ich bin nach der vorhandenen Anleitung unter http://www.eisfair.org/fileadmin/eisfair/doc/node18.html#SECTION001890000000000000000 vorgegangen, die mir allerdings noch sehr viele Fragen und Wahlmöglichkeiten offen liess. Ich habe versucht, möglichst genau die Eingaben zu beschreiben, denn das Menü ändert sich im Laufe der Zeit. Anfangs gibt es noch wenige Wahlmöglichkeiten, doch die Menüpunkte werden immer zahlreicher.

Im Menü des Paketes wählen wir den Punkt 8. Manage certificates und erhalten dann folgendes Menü:

Certificate generation
Parameters
  1 - change/set certificate type: client
  2 - change/set certificate name: <please enter certificate name>
 
Certificate Authority (CA)
  = - create a CA key 
  = - create a self-signed CA certificate 
  = - create .pem CA certificate and copy it to /usr/local/ssl/certs 
  6 - show CA key and certificate location
  = - revoke a certificate
  = - update revokation list
Server/service/client certificate
 == - create a new key or select an existing one 
 == - create certificate request 
 == - sign certificate request with CA key 
 == - create Diffie-Hellman parameters (takes up to 20min) 
 == - create .pem certificate and copy it to /usr/local/ssl/certs 
 == - create PKCS#12 document 
 == - show key and certificate location
 == - send certificates by e-mail
Please select (1-2,6), (q)uit: 

Will man sich ein selbstsigniertes Zertifikat erstellen, so ist es zuvor notwendig sich eine eigene Certificate Authority (CA) anzulegen. Mit deren Schlüssel kann dann das benötigte Zertifikat signiert werden.

Um eine eigene CA zu erstellen, geht man wie folgt vor:

  • Über den Menüpunkt 1 change/set certificate type wählt man den Key-Typ 1 Certificate Authority (CA) aus.
    Danach ist der type = ca und der name = ca.
  • Über den Menüpunkt 3 create a CA key erzeugt man einen CA-Schlüssel.
    Dabei werden wir zweimal nach der sog. passphrase gefragt - bitte identische Werte eingeben und aufschreiben (wichtig), denn die passphrase werden wir noch öfter benötigen - auch in Zukunft, wenn unser Zertifikat abgelaufen ist und daher erneuert werden muss.
  • Über den Menüpunkt 4 create a self-signed CA certificate erzeugt man ein selbstsigniertes CA-Zertifikat.
    Wir werden dabei nach einigen Daten für die CA gefragt: passphrase (siehe oben), Länderkürzel, Prozinz oder Bundesland, Stadt, Firmenname, Abteilungsname, Common name der CA und Mailadresse. Meist werden schon Daten vorgeschlagen und Tipps gegeben. Das Zertifikat hat eine Laufzeit von 10 Jahren - das reicht uns vorläufig.
  • Über den Menüpunkt 5 create .pem CA certificate and copy it to /usr/local/ssl/certs erzeugt man die endgültige Zertifikatsdatei /usr/local/ssl/certs/ca.pem .

Um ein Zertifikat für den Mail-Server zu erstellen, geht man wie folgt vor:

  • Über den Menüpunkt 1 change/set certificate type wählt man den Key-Typ 3 Mail server certificate aus.
    Danach ist der type = mail und der name = imapd, aber daran stören wir uns nicht.
  • Über den Menüpunkt 10 create a new key or select an existing one erzeugt man einen Rechner-spezifischen Schlüssel.
    Wir werden gefragt, ob wir einen neuen Schlüssel anlegen wollen (mit Eingabe 'n') oder ob wir einen bereits existierenden Schlüssel wählen wollen (Eingabe 'e'). Wir wählen 'n'. Es wird eine Datei /usr/local/ssl/private/imapd.key angelegt.
  • Über den Menüpunkt 11 create certificate request erzeugt man eine Zertifikatsanfrage.
    Wir werden dabei nach einigen Daten für das Zertifikat gefragt: Länderkürzel, Prozinz oder Bundesland, Stadt, Firmenname, Abteilungsname, Common name des Servers und Mailadresse. Meist werden schon Daten vorgeschlagen und Tipps gegeben. Dann werden wir noch nach dem challenge password (aufschreiben) gefragt und einer optionalen Firmenbezeichnung.
    Es wird eine Datei /usr/local/ssl/csr/imapd.csr angelegt.
  • Über den Menüpunkt 12 sign certificate request with CA key signiert man das Mail-Server-Zertifikat.
    Wir lassen die Zertifikatsdatenbank aktualisieren mit Eingabe 'y'.
    Wir geben die passphrase der CA ein.
    Als key usage wählen wir 2 - Client usage (e-mail).
    Als start date/validity wählen wir 1 - use default start date/validity: 2013-12-18 16:07:01 / 365 days.
    Wir werden wieder nach der passphrase der CA gefragt - eingeben.
    Wir werden gefragt, ob wir das Zertifikat signieren wollen - Eingabe 'y'.
    Wir werden gefragt, ob die neuen Daten geschrieben werden sollen - Eingabe 'y'.
    Dass nun ein Error gemeldet wird ignorieren wir.
  • Über den Menüpunkt 13 create Diffie-Hellman parameters erzeugt man DH-Parameter.
    Dies dauerte nur etwa eine halbe Minute - die gemeldeten 20 Minuten sind wohl übertrieben.
  • Über den Menüpunkt 14 create .pem certificate and copy it to /usr/local/ssl/certs erzeugt man die endgültige Zertifikatsdatei incl. des Schlüssels und der DH-Parameter.
    Dabei wurden unter /usr/local/ssl/certs folgende Dateien erzeugt: imapd.pem und jeweils als Link darauf: exim.pem und ipop3d.pem.

Hiermit haben wir nun unsere eigene exim.pem erstellt. Diese hat eine Laufzeit von einem Jahr, sofern man keine andere Gültigkeitsdauer angegeben hat.

Mit diesem Zertifikat kann ich problemlos über t-online, gmx.de, gmx.net und web.de mailen. Bei Fragen oder Unklarheiten wendet Euch bitte an die Newsgroup – bitte nicht direkt an mich.

Dezember 2013

Stefan Puschek