Re: Exim - Zertifikatkette tut nicht
On 30.12.2014 22:15, Heiko Schlittermann wrote:
Paul Muster <exp-311215@news.muster.net> (Di 30 Dez 2014 21:14:25 CET):
ich schaffe es nicht, Exim ein neues SSL/TLS-Zertifikat zu verpassen.
Bisher lief Exim einfach mit einem Server-Zertifikat, nun wird ein
Zwischen-CA-Zertifikat benötigt. Laut Doku soll man dieses einfach
hinter das Server-Zertifikat in die Datei reinkopieren.
Gleichzeitig nutze ich die Gelegenheit, auf aktuelle Schlüssellängen
(CAs 4096 Bit, Server 2048 Bit) und Hash-Algorithmen (SHA256) zu
wechseln.
Du hast im globalen Teil der Konfig
tls_certificate = <Pfad zu Deinem Chain-Zertifikat>
tls_privatekey = <Pfad zum entprechenden Key>
eingetragen?
Jepp. (Mittels der Einträge in
/etc/exim4/conf.d/main/000_localmacros
MAIN_TLS_CERTIFICATE = /etc/<pfad>/cert.pem
MAIN_TLS_PRIVATEKEY = /etc/<pfad>/key.pem
)
Wie sehen die anderen TLS-relevanten Optionen im globalen Teil aus?
MAIN_TLS_TRY_VERIFY_HOSTS =
resultiert in
tls_try_verify_hosts =
Sonst alles default.
Sind das selbstgebaute Zertifikate? Oder von einer offiziellen CA?
Ja. Nein. Die CA ist allerdings ordnungsgemäß dem System bekannt gemacht
mittels Ablage in /usr/share/ca-certificates/ und Aktivierung über
"dpkg-reconfigure ca-certificates".
Was passiert, wenn Du mit openssl eine Verbindung aufbaust:
openssl s_client -connect -startls smtp <server>:<port>
"openssl s_client -starttls smtp -connect <server>:<port>" ergibt:
Es wird korrekt erkannt, dass der Server drei Zertifikate schickt (habe
mal sicherheitshalber das RootCA-Zertifikat mit in die Kette gepackt).
Dann meint es:
verify error:num=19:self signed certificate in certificate chain
verify return:0
3073849496:error:0407006A:rsa
routines:RSA_padding_check_PKCS1_type_1:block type is not 01:rsa_pk1.c:100:
3073849496:error:04067072:rsa routines:RSA_EAY_PUBLIC_DECRYPT:padding
check failed:rsa_eay.c:721:
3073849496:error:1408D07B:SSL routines:SSL3_GET_KEY_EXCHANGE:bad
signature:s3_clnt.c:1832:
Die Zertifikatkette wird richtig erkannt, Issuer und Subject passen auch
jeweils. (Das hatte ich mittels "openssl verify ..." bereits geprüft.
Auch gnutls' "certtool -e" findet da keinen Fehler.)
Dann meldet es:
New, (NONE), Cipher is (NONE)
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID: <ID>
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1419975277
Timeout : 300 (sec)
Verify return code: 19 (self signed certificate in certificate chain)
Ja, klar, das RootCA-Zertifikat ist self-signed.
2014-12-30 20:10:44 TLS error on connection from <DNS-Name> [<IP>]
(gnutls_handshake): A TLS fatal alert has been received.
Sonst keine zielführenden Hinweise im mailog des Exim? Die Files liest
er nicht als root, sondern als Debian-Exim.
Nein, sonst nichts. Die Zertifikate sind für jedermann lesbar, der
private key unverändert.
Danke für die Hilfe & viele Grüße
Paul
Reply to: