2010-08-17 6 views
11

Ich habe einen Ruby-Client, der eine Verbindung zu einem Exchange-Server mit IMAP & SSL herstellt. Ich benutze die Ruby Net :: IMAP-Bibliothek (die openssl unter den Deckeln verwendet), um eine Verbindung herzustellen. Es hat seit Monaten gut funktioniert. Der Exchange Server-Administrator installierte neuen cert von GoDaddy und jetzt bekomme ich diesen Fehler:SSL_connect SYSCALL zurückgegeben = 5 errno = 0 Zustand = SSLv2/v3 Server lesen Hallo A

SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A 

Weiß jemand, was dieser Fehler bedeutet? (Ich versuchte zu googeln)

Ich vermute, dass es ein Problem mit dem neuen cert gibt, das verursacht, aber ich weiß nicht, wie man es behebt.

auch weiß, dass ich Sie Zertifikatsüberprüfung deaktivieren kann, wenn NET mit: HTTP by doing:

http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl? 

aber ich kann nicht herausfinden, wie dies mit NET zu tun: IMAP. Ich möchte dies deaktivieren, um zu sehen, ob dies das Problem ist.

Was Code im mit: Im mit diesem (oder sehr nahe an diesen) http://github.com/look/fetcher/blob/master/lib/fetcher/imap.rb

Ich habe versucht, zu ändern zu: @connection = Net :: IMAP.new (@server, @port, @ssl , null, false)

Hier ist die stacktrace

checking emails on: Tue Aug 17 20:48:01 +0000 2010 
rake aborted! 
SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A 
/usr/lib/ruby/1.8/net/imap.rb:904:in `connect' 
/usr/lib/ruby/1.8/net/imap.rb:904:in `initialize' 
/u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:34:in `new' 
/u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:34:in `establish_connection' 
/usr/lib/ruby/gems/1.8/gems/system_timer-1.0/lib/system_timer.rb:28:in `timeout_after' 
/u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:33:in `establish_connection' 
/u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/base.rb:31:in `fetch' 
+0

Haben Sie versucht, den Wert von timeout_call zu erhöhen (wahrscheinlich nicht das Problem)? Außerdem nehme ich an, dass Sie die Verbindung zum IMAP-Server mit einem anderen IMAP-Client getestet haben. – Brian

+0

Es wurde versucht, das Zeitlimit zu erhöhen, es schlägt jedoch sehr schnell fehl. Haven versuchte einen anderen Client, aber das funktionierte, bevor sie die Änderung auf dem Server vornahmen. – Joelio

+0

Ich würde mit einem anderen Client überprüfen und/oder das Zertifikat überprüfen, um sicherzustellen, dass nichts Schreckliches daran liegt (wie der Hostname auf dem Zertifikat nicht mit dem Hostnamen übereinstimmt, mit dem Sie sich verbinden). – Brian

Antwort

1

Nun, es stellt sich heraus, die Ursache für dieses war ms Austausch falsch konfiguriert wurde. Ich hätte gerne mehr über ssl Fehler gelernt und wie man sie troubleshoot, aber ich habe einfach nicht viele Infos dazu bekommen.

Ich versuche, tat nur diese mit offenen ssl troublshoot, FYI, können Sie tun: OpenSSL> s_client -connect myserver: 993

Wenn es gebrochen war, erhielt ich diesen Fehler: CONNECTED (00000003) 26831: Fehler: 140790E5: SSL-Routinen: SSL23_WRITE: SSL-Handshake failure: s23_lib.c: 188:

Sobald wir fixiert ich eine cert und Handshake-Nachricht bekam usw.

Hier ist das, was mein Austausch Admin sagte er habe: "Ich bin gerade zum IMAP-Protoco gegangen l und ging zu der Registerkarte Zugang. Dann die Schaltfläche Zertifikate. Von dort entschied ich mich, das Zertifikat zu ersetzen und wählte das neue Zertifikat. "

0

nach dem documentation, können Sie die SSL-Überprüfung auf none gesetzt, wenn Net Instanziierung: IMAP

Sie können auch auf eine lokale Kopie des CA-Cert mit der Option certs verweisen.

Anmerkung: Ich habe nicht versucht, diese selbst ...

+0

Danke, versucht, dies, immer noch gleichen Fehler, danke, ich bin mir nicht sicher, ob das das gleiche ist oder nicht. – Joelio

+0

Können Sie den von Ihnen verwendeten Code posten? – Brian

+0

sicher, aktualisierte Frage – Joelio

3

Ich habe diesen Fehler erhalten, indem ich eine Verbindung mit dynamoDB mit Schienen 3 unter Verwendung des Standard-Setups versuchte. Lösung war

config.port = 443 

zum

dynamo_db.rb

initializer

Zum Zeitpunkt des Schreibens hinzuzufügen dieses Update in einem unmerged Zweig des Juwel.

Verwandte Themen