Tag: openssl

Ruby 1.9.3 + OpenSSL::SSL::SSLError issue

Problem

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3
read server certificate B: certificate verify failed
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in
`connect'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in
`block in connect'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:68:in
`timeout'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:99:in
`timeout'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in
`connect'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:755:in
`do_start'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:750:in
`start'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/xmlrpc/client.rb:535:in
`do_rpc'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/xmlrpc/client.rb:420:in
`call2'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/xmlrpc/client.rb:410:in
`call'
from /path/infusionsoft/connection.rb:15:in
`connection'
from /path/infusionsoft/request.rb:29:in
`request'
from /path/infusionsoft/request.rb:5:in
`get'
from /path/infusionsoft/client/contact.rb:59:in
`contact_find_by_email'
from /path/infusionsoft.rb:18:in
`method_missing'
from (irb):2
from /path/rails/commands/console.rb:45:in
`start'
from /path/rails/commands/console.rb:8:in
`start'
from /path/rails/commands.rb:40:in
`<top (required)>'
from ./script/rails:6:in `require'
from ./script/rails:6:in

Solution

To work this around, we need to overwrite use_ssl method:

module Net
  class HTTP
    def use_ssl=(flag)
      flag = flag ? true : false
      if started? and @use_ssl != flag
        raise IOError, "use_ssl value changed, but session already started"
      end
      @use_ssl = flag
      if @use_ssl
        self.verify_mode = OpenSSL::SSL::VERIFY_NONE
      end
    end
  end
end

RVM i no such file to load — openssl | no such file to load — readline

Instalując poprzez RVMa kolejne wersje Rubiego, natknąć możemy się na taki oto komunikat:

no such file to load -- openssl

Informacja ta wyskakuje kiedy skompilowaliśmy naszego Rubiego bez OpenSSLa. Aby temu zaradzić wystarczy:

cd ~/.rvm/src/ruby-1.9.2-p0/ext/openssl
ruby extconf.rb
make
make install

Podobna procedura tyczy się także w wypadku takiego komunikatu:

no such file to load -- readline

Jedyna różnica jest taka, że musimy zainstalować wcześniej dwa pakiety:

    sudo apt-get install libncurses5-dev libreadline5-dev
    cd ~/.rvm/src/ruby-1.9.2-p0/ext/readline
    ruby extconf.rb
    make
    make install

UPDATE

Hipertracker podał prostsze rozwiązanie:

rvm package install readline
rvm package install openssl
rvm remove 1.9.2
rvm install 1.9.2 –with-readline-dir=$rvm_path/usr –with-openssl-dir=$HOME/.rvm/usr

Aczkolwiek i tak wolę mój sposób - trwa krócej ;)

Copyright © 2024 Closer to Code

Theme by Anders NorenUp ↑