05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

396 7 Client-/Server-Programmierung <strong>mit</strong> Open<strong>SSL</strong><br />

Certificate subject:<br />

countryName<br />

= DE<br />

organizationName = Irgendwie <strong>und</strong> Sowieso<br />

organizationalUnitName = Binser<br />

commonName<br />

= Binsers CA<br />

emailAddress<br />

= ca@irgendwie-sowieso.dom<br />

Certificate issuer:<br />

countryName<br />

= DE<br />

organizationName = Irgendwie <strong>und</strong> Sowieso<br />

organizationalUnitName = Binser<br />

commonName<br />

= Binsers CA<br />

emailAddress<br />

= ca@irgendwie-sowieso.dom<br />

Can’t create <strong>SSL</strong> BIO ...<br />

3263:error:14090086:<strong>SSL</strong> routines:<strong>SSL</strong>3_GET_SERVER_CERTIFICATE<br />

certificate verifyfailed:s3_clnt.c:844:<br />

Selbstverständlich ist das Testprogramm in diesem Fall in der Lage, eine TCP-<br />

Verbindung <strong>mit</strong> dem gewünschten Server manhattan aufzubauen <strong>und</strong> <strong>mit</strong><br />

der ungesicherten Kommunikation zu beginnen. Wie der Ausgabe des Servers<br />

zu entnehmen ist, bietet er dem Client das STARTTLS-Kommando zum<br />

<strong>SSL</strong>-Upgrade an. Sobald der Client aber nach einem STARTTLS <strong>mit</strong> dem Aufbau<br />

der <strong>SSL</strong>-Verbindung beginnt, verweigert er bei der Zertifikatsüberprüfung<br />

das Zertifikat seines Gegenübers, da es von einer ihm unbekannten Zertifizierungsstelle<br />

stammt. Zum besseren Verständnis gibt die von uns eingebrachte<br />

Callback-Funktion einige Informationen über das Zertifikat aus, an dem die<br />

Überprüfung gescheitert ist. Im vorliegenden Fall ist dies das nicht bekannte,<br />

selbstsignierte Zertifikat der Zertifizierungsstelle Binsers CA.<br />

Nachdem wir das selbstsignierte Zertifikat der CA an der richtigen Stelle hinterlegt<br />

<strong>und</strong> die Zertifizierungsstelle da<strong>mit</strong> als vertrauenswürdig eingestuft haben,<br />

können wir einen zweiten Verbindungsversuch unternehmen:<br />

$ ./bio-ssl-smtpcli2 manhattan<br />

220 manhattan.irgendwie-sowieso.dom ESMTP Exim 4.30<br />

EHLO indien<br />

250-manhattan.irgendwie-sowieso.dom Hello indien<br />

250-SIZE 52428800<br />

250-PIPELINING<br />

250-STARTTLS<br />

250 HELP<br />

STARTTLS<br />

220 TLS go ahead<br />

Failed to verify peer certificate: subjectAltName or<br />

commonName doesn’t match manhattan<br />

Nachdem nun die Zertifizierungsstelle, welche das vom SMTP-Server präsentierte<br />

Zertifikat ausgestellt hat, bekannt <strong>und</strong> als vertrauenswürig eingestuft ist,

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!