Seitdem unser E-Mail-Anbieter sein SSL-Zertifikat geändert hat, weigert sich ein POP3-Client auf der Basis von Mono, eine Verbindung zu seinem sicheren POP-Server herzustellen, um E-Mails herunterzuladen. Andere Kunden haben kein Problem. zB Thunderbird und Outlook; Die meisten SSL-Überprüfungssites, die ungerade Ports überprüfen können, außer diesem . Ich habe mit beiden Anbietern zusammengearbeitet, um das Problem zu identifizieren, bin aber mit beiden letztendlich in eine Sackgasse geraten, da ich nicht genug über SSL-Zertifikate weiß, um einen der beiden Anbieter dazu zu bringen, die Fehlerursache zu verstehen.
Während der Untersuchung wurde meine Aufmerksamkeit auf den Unterschied in der Ausgabe der folgenden zwei Befehle gelenkt (ich habe die Zertifikate aus Gründen der Lesbarkeit aus der Ausgabe entfernt):
echo "" | openssl s_client -showcerts -connect pop.gmail.com:995
VERBUNDEN (00000003) Tiefe = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA überprüfen Fehler: num = 20: unable lokale Aussteller - Zertifikat erhalten Rückgabe bestätigen: 0 --- Zertifikatskette 0 s: / C = USA / ST = Kalifornien / L = Bergblick / O = Google Inc / CN = pop.gmail.com i: / C = USA / O = Google Inc. / CN = Google Internet Authority G2 ----- ZERTIFIKAT BEGINNEN ----- ----- ZERTIFIKAT BEENDEN ----- 1 s: / C = US / O = Google Inc. / CN = Google Internet Authority G2 i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- ZERTIFIKAT BEGINNEN ----- ----- ZERTIFIKAT BEENDEN ----- 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = Equifax / OU = Sichere Equifax-Zertifizierungsstelle ----- ZERTIFIKAT BEGINNEN ----- ----- ZERTIFIKAT BEENDEN ----- --- Serverzertifikat subject = / C = USA / ST = Kalifornien / L = Mountain View / O = Google Inc / CN = pop.gmail.com Emittent = / C = US / O = Google Inc. / CN = Google Internet Authority G2 --- Es wurden keine CA-Namen für Client-Zertifikate gesendet --- SSL-Handshake hat 3236 Bytes gelesen und 435 Bytes geschrieben --- Neu, TLSv1 / SSLv3, Verschlüsselung ist RC4-SHA Der öffentliche Schlüssel des Servers ist 2048 Bit Secure Renegotiation wird unterstützt Kompression: KEINE Erweiterung: KEINE SSL-Sitzung: Protokoll: TLSv1 Chiffre: RC4-SHA Sitzungs-ID: 745F84194498529B91B7D9194363CBBD23425446CF2BFF3BF5557E3C6606CA06 Session-ID-ctx: Hauptschlüssel: DED1AE0A44609F9D6F54626F4370ED96436A561A59F64D66240A277066322DCD2CCB9A6D198C95F4D2B0C7E6781EECD2 Key-Arg: Keine Startzeit: 1397678434 Zeitlimit: 300 (Sek.) Überprüfen Sie den Rückkehrcode: 20 (lokales Ausstellerzertifikat kann nicht abgerufen werden) --- + OK Gpop bereit für Anfragen vom 69.3.61.10 c13mb42148040pdj ERLEDIGT
echo "" | openssl s_client -showcerts -connect secure.emailsrvr.com:995
VERBUNDEN (00000003) Tiefe = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA Überprüfungsfehler : num = 19: Selbstsigniertes Zertifikat in der Zertifikatkette Rückgabe bestätigen: 0 --- Zertifikatskette 0 s: / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = Siehe www.rapidssl.com/resources/cps (c) 14 / OU = Domain Control Validated - RapidSSL (R) /CN=secure.emailsrvr.com i: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA ----- ZERTIFIKAT BEGINNEN ----- ----- ZERTIFIKAT BEENDEN ----- 1 s: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- ZERTIFIKAT BEGINNEN ----- ----- ZERTIFIKAT BEENDEN ----- 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- ZERTIFIKAT BEGINNEN ----- ----- ZERTIFIKAT BEENDEN ----- --- Serverzertifikat subject = / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = Siehe www.rapidssl.com/resources/cps (c) 14 / OU = Domain Control Validated - RapidSSL (R) /CN=secure.emailsrvr.com Emittent = / C = US / O = GeoTrust, Inc./CN=RapidSSL CA --- Es wurden keine CA-Namen für Client-Zertifikate gesendet --- Der SSL-Handshake hat 3876 Bytes gelesen und 319 Bytes geschrieben --- Neu, TLSv1 / SSLv3, Verschlüsselung ist DHE-RSA-AES256-SHA Der öffentliche Schlüssel des Servers ist 2048 Bit Secure Renegotiation wird unterstützt Kompression: KEINE Erweiterung: KEINE SSL-Sitzung: Protokoll: TLSv1 Verschlüsselung: DHE-RSA-AES256-SHA Sitzungs-ID: 3F4EE3992B46727BE2C7C3E76A9A6A8D64D66EE843CB1BB17A76AE2E030C7161 Session-ID-ctx: Hauptschlüssel: 016209E50432EFE2359DB73AB527AF718152BFE6F88215A9CE40604E8FF2E2A3AC97A175F46DF737596866A8BC8E3F7F Key-Arg: Keine Startzeit: 1397678467 Zeitlimit: 300 (Sek.) Überprüfen Sie den Rückkehrcode: 19 (selbstsigniertes Zertifikat in der Zertifikatskette) --- ERLEDIGT
Ich habe versucht zu verstehen, ob dies sinnvoll ist, da -CApath
die Befehle bei Angabe der Option keine Fehler verursachen:
openssl s_client -CApath /etc/ssl/certs -showcerts -connect secure.emailsrvr.com:995
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = "GeoTrust, Inc.", CN = RapidSSL CA
verify return:1
depth=0 serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ/dD, OU = 4159320284, OU = See www.rapidssl.com/resources/cps (c)14, OU = Domain Control Validated - RapidSSL(R), CN = secure.emailsrvr.com
verify return:1
...
openssl s_client -CApath /etc/ssl/certs -showcerts -connect pop.gmail.com:995
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = pop.gmail.com
verify return:1
...
Ich kann die -CAfile
Option auch erfolgreich verwenden, nachdem ich das CAfile-Zertifikat direkt von GeoTrust heruntergeladen habe .
Trotzdem scheint Fog Creek der Meinung zu sein, dass das Problem beim Zertifikat liegt, da sie versucht haben, das Zertifikat Trust
ohne Erfolg in Monos Geschäft zu integrieren. Ich würde mit ihnen nicht einverstanden sein, aber (wie oben erwähnt), während die meisten SSL-Prüfer entweder Port 995 nicht überprüfen oder während des Versuchs erfolgreich waren, fand ich diese Seite , die SSL-Fehler 7 erzeugt.
Interpretiere ich die Ausgabe richtig, um zu bedeuten, dass mit dem Zertifikat nichts falsch ist?
openssl s_client
es, dass standardmäßig keine Root-Zertifikate importiert werden. Versuchen Sie es stattdessen mit:, openssl s_client -connect secure.emailsrvr.com:995 -showcerts -CApath /etc/ssl/certs
und Sie werden wahrscheinlich feststellen, dass der selbstsignierte Fehler verschwindet.