dovecot & startssl

Andreas Tauscher ta at lonestar-bbs.de
Sa Jun 11 21:40:24 CEST 2016


On 11.06.2016 17:16, sebastian at debianfan.de wrote:

> ssl_cert & ssl_key - aus den Informationen des Dovecot-Buches auf Seite
> 201 schlussfolgere ich also:
> 
> ssl_cert_file = /etc/ssl/domain.de.csr
> ssl_key_file = /etc/ssl/domain.de.key

Die Syntax ist ja geklärt worden.

> Die csr-Datei ist meine selbst erstellte Datei, die key-Datei die,welche
> ich von Startssl als signiert zurückerhalten habe.

Da hast Du etwas völlig missverstanden.
Was Du zurückbekommst ist ein Zertifikat und kein Key.
Den Key gibst Du niemals und nimmer aus der Hand. Wenn dir der abhanden
kommt ist da Zertifikat kompromittiert, muß widerrufen werden und durch
ein neues key/crt Paar ersetzt werden.
Das Zertifikat trötest Du ja eh bei jedem Verbindungsaufbau in die Welt
hinaus. Key: Geheim. Zertifikat: Öffentlich

Als Du deine Schlüssel erzeugt hast hattest Du am ende drei Dateien:
* einen Key
* ein Zertifikat
* eine .csr Datei die aus Key und Zertifikat erzeugt wurde.

Die .csr Datei hast Du bei Startssl hochgeladen.
Von Startssl hast du eine zip Datei zurückbekommen. Darin findest Du:

OtherServer.zip Und darin:

1_Intermediate.crt
2_domain.de.crt

Dovecot braucht jetzt:

ssl_key_file = </etc/ssl/domain.de.key

Da gehört der Key hin den DU erzeugt hast.

ssl_cert_file: Das muß jetzt erst zusammengebaut werden.
Eine CA unterschreibt andere Zertifikate nicht mit dem Zertifikat das
die browser, mail clients etc. kennen. Das wird mit einem
Zwischenzertifikat unterschrieben. Das ist 1_Intermediate.crt Dieses
Zertifikat kennen die Clients nicht! Es ist auch je nach Anwendung
(Klasse 1, 2 , EV, Code signing etc.) meist ein anderes und kann
jederzeit geändert werden.
Damit der Client DEIN Zertifikat überprüfen kann muß die Kette vom root
Zertifikat bis zu deinem lückenlos sein.
Dein Zertifikat ist mit dem Intermediate Zertifikat signiert.
Das Intermediate Zertifikat ist mit dem root Zertifikat unterschrieben.
Da der Client das Intermediate Zertifikat nicht kennt muß dovecot das
liefern. Das zusammenbauen ist ganz einfach:

cat 2_domain.de.crt 1_Intermediate.crt > domain.de.crt

ssl_cert_file = </etc/ssl/domain.de.crt

Und schon klappt es mit TLS.

> Es funktioniert aber trotzdem nicht - mail.log sagt:
> 
> Jun 11 16:14:16 debian dovecot: imap-login: Fatal: Couldn't parse
> private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line:
> Expecting: ANY PRIVATE KEY

Ganz klar, da Du ihm keinen Key angegeben hast sondern ein Zertifikat.

Andreas

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 836 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://listen.jpberlin.de/pipermail/dovecot/attachments/20160611/eee600e0/attachment-0001.asc>


Mehr Informationen über die Mailingliste Dovecot