Frage Wie überprüft man das TLS-Zertifikat des Remote-SMTP-Servers?


Wir haben einen Exchange 2007-Server unter Windows Server 2008. Unser Client verwendet den Mailserver eines anderen Anbieters. Ihre Sicherheitsrichtlinien erfordern die Verwendung von erzwungenem TLS. Das funktionierte bis vor kurzem.

Wenn Exchange nun versucht, E-Mails an den Server des Clients zu senden, protokolliert es Folgendes:

Eine sichere Verbindung zur domänengesicherten Domäne "ourclient.com" im Connector "Externe Standard-E-Mail" konnte nicht hergestellt werden, da die Überprüfung des TLS-Zertifikats (Transport Layer Security) für unseren Client mit dem Status "UntrustedRoot" fehlgeschlagen ist. Wenden Sie sich an den Administrator von occlient.com, um das Problem zu beheben, oder entfernen Sie die Domäne aus der domänengesicherten Liste.

Das Entfernen von euroclient.com aus der TLSSendDomainSecureList bewirkt, dass Nachrichten erfolgreich mit opportunistischem TLS zugestellt werden, aber dies ist bestenfalls eine vorübergehende Lösung.

Der Kunde ist ein extrem großes, sicherheitskritisches internationales Unternehmen. Unser IT-Kontakt dort behauptet, keine Änderungen an seinem TLS-Zertifikat zu bemerken. Ich habe ihn wiederholt gebeten, die Autorität, die das Zertifikat generiert hat, zu identifizieren, damit ich den Validierungsfehler beheben kann, aber bisher konnte er keine Antwort geben. Soweit ich weiß, könnte unser Kunde sein gültiges TLS-Zertifikat durch eines von einer internen Zertifizierungsstelle ersetzt haben.

Kennt jemand eine Möglichkeit, das TLS-Zertifikat eines Remote-SMTP-Servers manuell zu prüfen, wie dies für das Zertifikat eines Remote-HTTPS-Servers in einem Webbrowser möglich ist? Es könnte sehr hilfreich sein, festzustellen, wer das Zertifikat ausgestellt hat, und diese Informationen mit der Liste der vertrauenswürdigen Stammzertifikate auf unserem Exchange-Server zu vergleichen.


48
2018-04-12 15:18


Ursprung




Antworten:


Sie können OpenSSL verwenden. Wenn Sie das Zertifikat mit überprüfen müssen STARTTLSdann tu es einfach

openssl s_client -connect mail.example.com:25 -starttls smtp

oder für einen Standard-Secure-SMTP-Port:

openssl s_client -connect mail.example.com:465

84



Wunderschönen. Ähnliche Validierungsfehler in OpenSSL, aber viel mehr Details. Jetzt wissen wir, dass das Problem nicht auf unseren Mailserver beschränkt ist. - Skyhawk
@Miles: Wenn Sie dies unter Windows versuchen, vergessen Sie das nicht openssl unterstützt nicht die Verwendung des Windows-Zertifikatspeichers, sodass die Validierung immer fehlschlägt. - grawity
Wie kann ich das Ablaufdatum für Serverzertifikate sehen? - nimrodm
@nimrodm: pipe das cert zu "openssl x509 -text" - Dan Andreatta
@DanAndreatta @nimrodm Oder pipe es zu openssl x509 -noout -dates für kürzere Ausgabe. - Skippy le Grand Gourou


Ich weiß, dass dies eine alte Frage ist, aber immer noch eine relevante Frage für Administratoren, die die Gültigkeit des SSL-Zertifikats auf ihren E-Mail-Servern bestätigen möchten.

Sie könnten besuchen https://www.checktls.com und führen Sie den Test kostenlos durch.


8



Dies funktionierte für mich, war lesbarer als die Befehlszeile - marijnz0r
Ich habe Probleme, den Test auf der Website zu finden. Irgendwelche Zeiger? - Zero3
Es gibt ein Eingabefeld im Abschnitt "Internet Secure Email is Easy" mit dem Button "CheckTLS" in schwarzer Farbe. - Ketan Patel


Wenn Sie nicht über OpenSSL verfügen, können Sie auch dieses Python-Snippet verwenden:

import smtplib
import ssl

connection = smtplib.SMTP() 
connection.connect('[hostname].')
connection.starttls()
print ssl.DER_cert_to_PEM_cert(connection.sock.getpeercert(binary_form=True))

wo [Hostname] ist der Server.

Quelle: https://support.google.com/a/answer/6180220

Dies zieht die OpenSSL-Bibliothek für Sie, was die Installation ein bisschen einfacher macht.


1



Von dem Python SSL-Modul-Dokumentation: "Dieses Modul verwendet die OpenSSL-Bibliothek." Diese Antwort ist ein wenig irreführend in Bezug auf das, was vor sich geht. - fbmd
@fbmd Danke für die Rückmeldung. Ist diese Bearbeitung besser (siehe letzten Satz)? - browly
Ja, das ist besser. - fbmd