This isn't a bug caused by http-access2, but it may be one that http-access2 could work around.
I'm using the cj4r gem to communicate with cj.com's API over HTTPS. This was working fine until recently when a new version of OpenSSL arrived and cj.com's servers don't seem to like it. The best I can find is that it has to do with TLS Extensions. Both Mac OS 10.5.7 and Ubuntu Intrepid have this problem. I am attempting to rebuild openssl on my Ubuntu Intrepid box to work, but have so far been unable to get it working.
Here is the backtrace of my API call from my Rails app on Mac OS 10.5.7 with Ruby 1.8.7:
SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert unexpected message
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/session.rb:247:in `connect'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/session.rb:247:in `ssl_connect'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/session.rb:639:in `connect'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/timeout.rb:128:in `timeout'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/session.rb:631:in `connect'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/session.rb:522:in `query'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient/session.rb:147:in `query'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient.rb:953:in `do_get_block'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient.rb:765:in `do_request'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient.rb:848:in `protect_keep_alive_disconnected'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient.rb:764:in `do_request'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient.rb:666:in `request'
/opt/local/lib/ruby/gems/1.8/gems/httpclient-2.1.5/lib/httpclient.rb:596:in `post'
/opt/local/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:238:in `send_post'
/opt/local/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:172:in `send'
/opt/local/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:179:in `route'
/opt/local/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:143:in `call'
/opt/local/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/driver.rb:181:in `call'
(eval):6:in `search'
/Users/sean/dev/dealzon/rails/app/controllers/admin/search_controller.rb:59:in `products'
Testing from the command line I find this:
$ openssl s_client -tls1 -connect product.api.cj.com:443
CONNECTED(00000003)
15541:error:140943F2:SSL routines:SSL3_READ_BYTES:sslv3 alert unexpected message:s3_pkt.c:1060:SSL alert number 10
15541:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:530:
$ openssl s_client -connect product.api.cj.com:443 -ssl3
CONNECTED(00000003)
18832:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:284:
The following commands work...
$ openssl s_client -tls1 -connect product.api.cj.com:443 -no_ticket
$ openssl s_client -connect product.api.cj.com:443
Any help would be much appreciated. Thanks.