У меня немного кошмар, пытаясь заставить REE хорошо играть с SSL.Ruby Enterprise Edition + OpenSSL -> «проверка сертификата не удалась»
Всякий раз, когда я подключаю к месту SSL:
require 'open-uri'
open 'https://www.google.com'
Я получаю следующее сообщение об ошибке:
/Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:586:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:586:in `connect'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:553:in `do_start'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:542:in `start'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:242:in `open_http'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:162:in `catch'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:518:in `open'
from /Users/jon/.rvm/rubies/ree-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:30:in `open'
Это прекрасно работает под Руби 1.9.2 или 1.8.7 регулярно. Я попробовал переупаковать OpenSSL и установить ree, чтобы связать это, как упомянуто on the RVM OpenSSL page, но это не повлияло. Я на OS X 10.6.7, но я вижу ту же проблему с нашей установкой OpenSolaris REE.
Любые предложения будут оценены в широком масштабе.
Да, я пытался добавить сертификаты в каталог/opt/local/etc/openssl, но не могу убедить рубин, чтобы увидеть их. Не совсем уверен, что мне не хватает. –
@jdelStrother: Вы использовали утилиту 'c_rehash' в этом каталоге для создания хэш-ссылок? Это необходимо. – caf
Да. Я должен был бы просто захватить cacerts.pem, например, http://curl.haxx.se/ca/cacert.pem, скопировать его в/opt/local/etc/openssl, запустить c_rehash для создания символической ссылки и он должен начать работать ... верно? Или мне нужно как-то разбить cacert.pem на отдельные сертификаты? –