Der für mich wichtigste Grund einen eigenen Mailserver aufzusetzen war, dass ich selbst kontrollieren könne, was mit den Mails geschieht. Da man da natürlich auch auf den Übertragungsweg achten muss, sollte man einen Zugang per SSL schaffen. Da man mittlerweile SSL-Zertifikate sehr preiswert oder wie beispielsweise über CAcert kostenlos erhält, ist dies nicht weiter komplex. Ich bin nicht nicht den Umweg einer eigenen Zertifizierungstelle gegangen, sondern habe es extern von CAcert zertifizieren lassen. Dies ist eigentlich recht einfach; ich beschreibe es hier als Merkzettel für mich.

Wir wechseln ins courier-Verzeichnis:

1
cd /etc/courier-imap

Anschließend legen wir einen privaten Schlüssel mit 2048 Bits an:

1
openssl genrsa -out sslcouriermailserver.key 2048

Dann legen wir eine Konfigurationsdatei namens sslcouriermailserver.cnf für OpenSSL mit folgendem Inhalt an:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
RANDFILE = /usr/share/imapd.rand
[ req ]
default_bits = 2048
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=US
ST=State
L=City
O=Company
OU=Mail server
CN=mail.example.com
emailAddress=root@example.com
[ cert_type ]
nsCertType = server

Hinweis: Ein Klick auf PLAIN CODE erleichtert das kopieren

Der Teil unter “req_dn” kann ordnungsgemäß ausgefüllt werden, bei CAcert wird bis auf den Common Name (CN) allerdings davon nichts bearbeitet. Der CN MUSS dem Namen des Mailservers entsprechen, ansonsten gibt es später Fehler beim verbinden!

Jetzt wird der Zertifikatsrequest erstellt:

1
openssl req -new -key sslcouriermailserver.key -config sslcouriermailserver.cnf -out sslcouriermailserver.csr

Kopiere den Inhalt der sslcouriermailserver.csr in die Zertifikatsrequestseite von CAcert und speichere das gewonnene Zertifikat unter sslcouriermailserver.crt.

Jetzt muss man noch eine *.pem Datei erstellen, welche courier dann einlesen wird:

1
cat sslcouriermailserver.key sslcouriermailserver.crt > sslcouriermailserver.pem

Und noch ein wenig Diffie-Hellman -Parameter:

1
openssl gendh >> sslcouriermailserver.pem

Jetzt schützt man die enstandenen files noch:

1
chmod 400 sslcouriermailserver.*

Das SSL-Zertifikat wird dann in der imapd-ssl und pop3d-ssl eingetragen:

1
TLS_CERTFILE=/etc/courier-imap/sslcouriermailserver.pem

Nun noch den courier-server durchstarten und schon ist alles durch:

1
2
/etc/init.d/courier-imapd-ssl restart
/etc/init.d/courier-pop3d-ssl restart