2012-11-08 88 views
2

這是一個相當長的故事......但它基本上歸結爲其他人似乎都有的相同問題,除了我可以似乎沒有解決它。Ubuntu 12.04.1上的Ruby OpenSSL :: SSL :: SSLError/Ruby 1.9.3p0

我使用的是EC2 ami-3d4ff254,它是Ubuntu 12.04.1 LTS x64。我正在部署需要Ruby 1.93的Githubs Janky application,並且是一個Sinatra應用程序。

我的基本安裝在Ubuntu依賴的過程

sudo apt-get -y update 
sudo apt-get -y install curl ssh git-core git build-essential zlib1g zlib1g-dev libyaml-dev libxml2-dev libc6-dev autoconf automake libtool make postgresql postgresql-client postgresql-contrib libpq-dev ruby1.9.3 ruby1.9.1-dev rubygems1.9.1 ruby-bundler openssl 

我也跟着方向here確保1.9.3是默認的。

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.3 400 \ 
--slave /usr/share/man/man1/ruby.1.gz ruby.1.gz \ 
       /usr/share/man/man1/ruby1.9.3.1.gz \ 
--slave /usr/bin/ri ri /usr/bin/ri1.9.3 \ 
--slave /usr/bin/irb irb /usr/bin/irb1.9.3 \ 
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.3 \ 

sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.3 400 

sudo gem install rubygems-update 

這就是我的環境的基本設置。

工具版本

Cmd的線驗證

ruby -v 
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] 

gem -v 
1.8.11 

openssl version 
OpenSSL 1.0.1 14 Mar 2012 

下面是該應用程序正在新貴下運行(如配置成通過工頭)Gemfile.lock的

GEM 
    remote: http://rubygems.org/ 
    specs: 
    activemodel (3.2.8) 
     activesupport (= 3.2.8) 
     builder (~> 3.0.0) 
    activerecord (3.2.8) 
     activemodel (= 3.2.8) 
     activesupport (= 3.2.8) 
     arel (~> 3.0.2) 
     tzinfo (~> 0.3.29) 
    activesupport (3.2.8) 
     i18n (~> 0.6) 
     multi_json (~> 1.0) 
    addressable (2.3.2) 
    arel (3.0.2) 
    broach (0.2.1) 
     json (~> 1.4) 
     nap (~> 0.3) 
    builder (3.0.4) 
    daemons (1.1.9) 
    eventmachine (1.0.0) 
    faraday (0.8.4) 
     multipart-post (~> 1.1) 
    faraday_middleware (0.9.0) 
     faraday (>= 0.7.4, < 0.9) 
    hashie (1.2.0) 
    hipchat (0.6.1) 
     httparty 
     httparty 
    httparty (0.9.0) 
     multi_json (~> 1.0) 
     multi_xml 
    i18n (0.6.1) 
    janky (0.9.13) 
     activerecord (~> 3.2.0) 
     broach (~> 0.2) 
     mustache (~> 0.11) 
     rake (~> 0.9.2) 
     replicate (~> 1.4) 
     sinatra (~> 1.3) 
     sinatra_auth_github (~> 0.7.0) 
     yajl-ruby (~> 1.1.0) 
    json (1.7.5) 
    mime-types (1.19) 
    multi_json (1.3.7) 
    multi_xml (0.5.1) 
    multipart-post (1.1.5) 
    mustache (0.99.4) 
    nap (0.5.1) 
    oauth2 (0.5.2) 
     faraday (~> 0.7) 
     multi_json (~> 1.0) 
    octokit (1.4.0) 
     addressable (~> 2.2) 
     faraday (~> 0.8) 
     faraday_middleware (~> 0.8) 
     hashie (~> 1.2) 
     multi_json (~> 1.3) 
    pg (0.14.1) 
    rack (1.4.1) 
    rack-protection (1.2.0) 
     rack 
    rake (0.9.2.2) 
    replicate (1.5) 
    rest-client (1.6.7) 
     mime-types (>= 1.16) 
    sinatra (1.3.3) 
     rack (~> 1.3, >= 1.3.6) 
     rack-protection (~> 1.2) 
     tilt (~> 1.3, >= 1.3.3) 
    sinatra_auth_github (0.7.0) 
     rest-client (~> 1.6.1) 
     sinatra (~> 1.0) 
     warden-github (~> 0.7.0) 
     yajl-ruby (~> 1.1) 
    thin (1.5.0) 
     daemons (>= 1.0.9) 
     eventmachine (>= 0.12.6) 
     rack (>= 1.0.0) 
    tilt (1.3.3) 
    tzinfo (0.3.35) 
    warden (1.2.1) 
     rack (>= 1.0) 
    warden-github (0.7.0) 
     json (~> 1.5) 
     oauth2 (~> 0.5.2) 
     octokit (~> 1.4.0) 
     rest-client (~> 1.6.1) 
     warden (~> 1.0) 
     yajl-ruby (~> 1.1) 
    yajl-ruby (1.1.0) 

PLATFORMS 
    ruby 

DEPENDENCIES 
    hipchat (~> 0.4) 
    janky (~> 0.9) 
    pg 
    thin 

的內容

一切似乎與應用程序完全合作,除了必須與https網站建立外部連接。它與可怕的OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed:

死亡的證書文件

export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt 

我已經嘗試了一些猴子補丁建議,我已經試過出口的變量。

我還可以在OpenSSL的CMD線連接到網站,所以這並不似乎是一個系統問題,只是一個Ruby的問題(​​據我可以告訴)

openssl s_client -connect my.jenkins.site:443 

這是一個交叉帖子,但是這個傳奇在Janky issue tracker上還有很多細節,包括Ruby爆炸的調用堆棧等。

如果任何人有任何偉大的想法,我很難過! (我想下一個選擇是嘗試使用RVM,我對此一無所知)。

回答

0

我認爲這歸結爲1.9.3p0。

只要我使用RVM來安裝Ruby,並使用了更高版本,我的問題就消失了。

所以這裏故事的寓意是,不要使用Ubunutu附帶的Ruby。

FWIW - 如果我不得不再做一遍,我會用rbenv代替。它更簡單。 RVM是一個小工具(特別是通過Capistrano部署,部署用戶與運行應用程序的用戶不一樣等)等。

+0

感謝您指向[rbenv]( https://github.com/sstephenson/rbenv#readme),非常有幫助。 –