Re: Replikation über SSL: Received invalid SSL certificate: unable to get local issuer certificate

Alexander Dalloz ad+lists at uni-x.org
Sa Jul 14 19:15:10 CEST 2018


Am 14.07.2018 um 12:44 schrieb Lukas:
> Hallo,
> 
> ich versuche die Replikation über TCP mit SSL zwischen zwei Dovecot 2.2.10
> Servern auf RHEL 7.5 zum Laufen zu bekommen.
> 
> Sobald die Replikation beginnt oder ich sie z. B. versuche mittels "doveadm
> replicator replicate lukas" anzustoßen, wird auf dem Server auf dem ich den
> Befehl ausführe folgendes geloggt:
> 
> Jul 14 08:57:40 server1 dovecot: doveadm(lukas): Received invalid SSL
> certificate: unable to get local issuer certificate: /CN=server2.domain.tld
> Jul 14 08:57:40 server1 dovecot: doveadm(lukas): Error: doveadm server
> disconnected before handshake: Received invalid SSL certificate: unable to
> get local issuer certificate: /CN=server2.domain.tld
> Jul 14 08:57:40 server1 dovecot: doveadm(lukas): Error: sync: Disconnected
> from remote: Received invalid SSL certificate: unable to get local issuer
> certificate: /CN=server2.domain.tld
> 
> Das Problem liegt wohl in der Zertifikat-Chain. Wenn ich mit openssl auf
> den dsync Port 12345 connecte sehe ich dass nur das Zertifikat für den
> Host, nicht aber die volle Chain geliefert wird:
> 
> # openssl s_client -connect server1.domain.tld:12345
> CONNECTED(00000003)
> depth=0 CN = server1.domain.tld
> verify error:num=20:unable to get local issuer certificate
> verify return:1
> depth=0 CN = server1.domain.tld
> verify error:num=21:unable to verify the first certificate
> verify return:1
> ---
> Certificate chain
>   0 s:/CN=server1.domain.tld
>     i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3


Ein openssl s_client Test gegen Port 993 von einem der beiden Server 
gegen den anderen liefert eine sauber validierte Zertifikatskette?

Bei mir funktioniert die Auflösung auf einem CentOS 7.5 gegen einen IMAP 
Server mit einem letsencrypt Zertifikat ohne Probleme:

# echo QUIT | openssl s_client -connect 1.2.3.4:143 -starttls imap
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = sys5.org
verify return:1
---
Certificate chain
  0 s:/CN=sys5.org
    i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
  1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
    i:/O=Digital Signature Trust Co./CN=DST Root CA X3
  2 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
    i:/O=Digital Signature Trust Co./CN=DST Root CA X3

Du kannst dem Zertifikat aus lets-encrypt-x3-cross-signed.pem.txt 
explizit vertrauen:

# update-ca-trust force-enable
# cp lets-encrypt-x3-cross-signed.pem.txt /etc/pki/ca-trust/source/anchors/
# update-ca-trust extract

Auf meinem CentOS 7.5 System  ist dies nicht notwendig.

Alexander





Mehr Informationen über die Mailingliste Dovecot