Probleme mit dovecot imap ssl certificate

4941
mulllhausen

Ich habe versucht, meinen Dovecot-Imap-Server (Version 1.0.10 - Upgrade ist zu diesem Zeitpunkt nicht möglich) mit einem neuen SSL-Zertifikat auf Ubuntu zu konfigurieren:

$ grep ^ssl /etc/dovecot/dovecot.conf ssl_disable = no ssl_cert_file = /etc/ssl/certs/mydomain.com.crt.20120904 ssl_key_file = /etc/ssl/private/mydomain.com.key.20120904 $ /etc/init.t/dovecot stop $ sudo dovecot -p $ [i enter the ssl password here] 

es zeigt keine fehler und wenn ich ps aux | grep dovecotrenne, bekomme ich

root 21368 0.0 0.0 12452 688 ? Ss 15:19 0:00 dovecot -p root 21369 0.0 0.0 71772 2940 ? S 15:19 0:00 dovecot-auth dovecot 21370 0.0 0.0 14140 1904 ? S 15:19 0:00 pop3-login dovecot 21371 0.0 0.0 14140 1900 ? S 15:19 0:00 pop3-login dovecot 21372 0.0 0.0 14140 1904 ? S 15:19 0:00 pop3-login dovecot 21381 0.0 0.0 14280 2140 ? S 15:19 0:00 imap-login dovecot 21497 0.0 0.0 14280 2116 ? S 15:29 0:00 imap-login dovecot 21791 0.0 0.0 14148 1908 ? S 15:48 0:00 imap-login dovecot 21835 0.0 0.0 14148 1908 ? S 15:53 0:00 imap-login dovecot 21931 0.0 0.0 14148 1904 ? S 16:00 0:00 imap-login me 21953 0.0 0.0 5168 944 pts/0 S+ 16:02 0:00 grep --color=auto dovecot 

was aussieht wie alles läuft gut. also teste ich, ob ich mit dem dovecot-Server telnet, und das funktioniert gut:

$ telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK Dovecot ready. 

aber wenn ich teste, ob dovecot die ssl-zertifikate ordnungsgemäß konfiguriert hat, scheint es zu scheitern:

$ sudo openssl s_client -connect localhost:143 -starttls imap CONNECTED(00000003) depth=0 /description=xxxxxxxxxxxxxxxxx/C=AU/ST=xxxxxxxx/L=xxxx/O=xxxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /description=xxxxxxxxxxx/C=AU/ST=xxxxxx/L=xxxx/O=xxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com verify error:num=27:certificate not trusted verify return:1 depth=0 /description=xxxxxxxx/C=AU/ST=xxxxxxxxxx/L=xxxx/O=xxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/description=xxxxxxxxxxxx/C=AU/ST=xxxxxxxxxx/L=xxxxxxxx/O=xxxxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA --- Server certificate -----BEGIN CERTIFICATE----- xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx . . . xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx== -----END CERTIFICATE----- subject=/description=xxxxxxxxxx/C=AU/ST=xxxxxxxxx/L=xxxxxxx/O=xxxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com issuer=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA --- No client certificate CA names sent --- SSL handshake has read 2831 bytes and written 342 bytes --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 2048 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: xxxxxxxxxxxxxxxxxxxx Session-ID-ctx:  Master-Key: xxxxxxxxxxxxxxxxxx Key-Arg : None Start Time: 1351661960 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate) --- . OK Capability completed. 

Zumindest gehe ich davon aus, dass dies ein Misserfolg ist ???

0

2 Antworten auf die Frage

1
Richard

Das Problem liegt bei openssl, nicht bei Dovecot.

Es gibt einen Fehler in openssl, der die Suche nach dem Standard-CApath stoppt. Sie müssen also angeben, wo die Liste der Root-CA-Zertifikate zu finden ist, indem Sie -CApathsie Ihrer Befehlszeile hinzufügen . Zum Beispiel:

sudo openssl s_client -connect localhost:143 -starttls imap -CApath /dev/null 

Wenn Sie Ihren certs-Ordner noch nicht ausgefüllt haben und sich mit Computern auskennen, folgen Sie diesem Tutorial, um certdata.txt von Mozilla herunterzuladen und die erforderlichen PEM-Dateien und Symlinks zu generieren. Die Skripts müssen möglicherweise geändert werden, wenn Sie keinen Zugriff auf / bin haben und einen Symlink ln -s ca-bundle.crt cert.pem erstellen müssen.

(Die Angabe von / dev / null erzwingt, dass openssl den Standardpfad von cert.pem in Ihrem openssl-Verzeichnis verwendet. Um herauszufinden, wo sich Ihr openssl-Verzeichnis befindet, geben Sie Folgendes ein openssl version -d).

Da Sie StartSSL verwenden, müssen Sie möglicherweise Ihr Zertifikat und sein Zwischenzertifikat für dovecot verketten. Dies ist in Ihrem Fall der StartCom Class 2 Primary Intermediate Server CA. Ihr kostenloses Zertifikat verwendet StartCom Class 1 Primary Intermediate Server CA

exzellent :) Ich habe das Tutorial durchlaufen und jetzt beim Ausführen des Befehls "openssl ..." bekomme ich "Verify Return Code: 0 (ok)". Um die Zertifikate zu erstellen, gehe ich einfach `cat /etc/ssl/certs/mydomain.com.crt.20120904 /etc/ssl/certs/mydomain.com.intermediate.20120904.pem> / etc / ssl / certs / mydomain. com.crt.20120904`? natürlich werde ich den original crt nur für den fall speichern ... mulllhausen vor 11 Jahren 0
0

Sie können verbose_ssl = yesin der Dovecot-Konfiguration verwenden, um zusätzliche Protokollierungsausgaben zu erzeugen.

In meiner Konfiguration (dovecot 2.0) verwende ich die folgenden Anweisungen:

 ssl_cert = </etc/ssl/certs/mydomain.com.crt.20120904 ssl_key = </etc/ssl/private/mydomain.com.key.20120904 
Danke für den Versuch, aber das ist definitiv nicht das Problem. Folgendes passiert, wenn ich es so ändere: `Fehler: Fehler in Konfigurationsdatei /etc/dovecot/dovecot.conf Zeile 96: Unbekannte Einstellung: ssl_cert Fatal: Ungültige Konfiguration in / etc / dovecot / dovecot.conf` mulllhausen vor 11 Jahren 0
Richtig, jetzt sehe ich, dass Sie Dovecot 1.0 verwenden. vor 11 Jahren 0