Ich arbeite gegen die Level3 SOAP API. Bis vor Kurzem funktionierte alles wunderbar, als OpenSSL aktualisiert wurde. Hiersslv3 alert unerwartete Nachricht bei der Verwendung von soap4r
ist die vollständige Ausgabe der Fehlermeldung:
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert unexpected message):
httpclient (2.1.5.2) lib/httpclient/session.rb:247:in `connect'
httpclient (2.1.5.2) lib/httpclient/session.rb:247:in `ssl_connect'
httpclient (2.1.5.2) lib/httpclient/session.rb:639:in `connect'
httpclient (2.1.5.2) lib/httpclient/timeout.rb:128:in `timeout'
httpclient (2.1.5.2) lib/httpclient/session.rb:631:in `connect'
httpclient (2.1.5.2) lib/httpclient/session.rb:522:in `query'
httpclient (2.1.5.2) lib/httpclient/session.rb:147:in `query'
httpclient (2.1.5.2) lib/httpclient.rb:953:in `do_get_block'
httpclient (2.1.5.2) lib/httpclient.rb:765:in `do_request'
httpclient (2.1.5.2) lib/httpclient.rb:848:in `protect_keep_alive_disconnected'
httpclient (2.1.5.2) lib/httpclient.rb:764:in `do_request'
httpclient (2.1.5.2) lib/httpclient.rb:666:in `request'
httpclient (2.1.5.2) lib/httpclient.rb:596:in `post'
/Users/glanotte/.rvm/gems/ruby-1.8.7-p302/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:238:in `send_post'
/Users/glanotte/.rvm/gems/ruby-1.8.7-p302/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:172:in `send'
/Users/glanotte/.rvm/gems/ruby-1.8.7-p302/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:179:in `route'
/Users/glanotte/.rvm/gems/ruby-1.8.7-p302/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:143:in `call'
/Users/glanotte/.rvm/gems/ruby-1.8.7-p302/gems/soap4r-1.5.8/lib/soap/rpc/driver.rb:181:in `call'
(eval):6:in `validateSLServiceAvailability'
Der Fehler ist sehr ähnlich der Fehler hier berichtet:
http://dev.ctor.org/http-access2/ticket/223
die Lösung, die die Person, die die oben geöffnet "Ich habe dies behoben, indem ich SSL :: OP_NO_TICKET als Option an SSLConfig übergeben habe." Ich habe versucht, diese durch zu tun:
object = WsdlToRubyPortType.new
object.options['client.protocol.http.ssl_config.options'] = OpenSSL::SSL::OP_NO_TICKET
ich folgendes auch versucht haben:
object.options['client.protocol.http.ssl_config.options'] = "OpenSSL::SSL::OP_NO_TICKET"
object.options['client.protocol.http.ssl_config.options'] = "SSL::OP_NO_TICKET"
Die Ergebnisse sind identisch, und die Fehlermeldung weiterhin besteht. Ich habe versucht, eine Zeile zu der Soap/Eigenschaftendatei hinzuzufügen, aber es wird nicht als eine gültige Option von dem httpconfloader erkannt.
Jede Hilfe würde sehr geschätzt werden, ich bin völlig fest. Ich denke, die Antwort ist offensichtlich, kann sie aber nicht sehen.
So viel hatte ich herausgefunden, der Haken ist die soap4r. Ich hatte gehofft, zu dem http-Objekt zu gelangen, ohne soap4r in die zugrundeliegende http-Instanz zu hacken. Ich kann die anderen ssl config Optionen mit den Methoden, die ich im Text des Tickets erwähnt habe, einstellen. –