ошибка установки пакета с ошибкой проверки сертификата SSL

Когда я запускаю bundle install для моего проекта Rails 3 на Centos 5.5, он выходит из строя с ошибкой:

 Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem) An error occured while installing multi_json (1.3.2), and Bundler cannot continue. Make sure that `gem install multi_json -v '1.3.2'` succeeds before bundling. 

Когда я пытаюсь установить камень вручную (с помощью gem install multi_json -v '1.3.2' ), он работает. Та же проблема возникает и с несколькими другими драгоценными камнями. Я использую RVM (1.12.3), ruby ​​1.9.2, bundler 1.1.3.

Как это исправить?

Обновить

Теперь, когда у меня есть карма, которая была достаточно хороша из этого ответа, каждый должен знать, что это должно быть исправлено.

re: via Ownatik снова связывает установку с ошибкой проверки сертификата SSL

 gem update --system 

Мой ответ по-прежнему верен и оставлен ниже для справки, если это не работает для вас.


Честно говоря, лучшим временным решением является

[…] используйте версию rubygems, отличную от ssl, в вашем gemfile как временное обходное решение.

через пользователь Ownatik

то, что они означают, находится в верхней части Gemfile в вашем изменении каталога приложений rails

source 'https://rubygems.org'

в

source 'http://rubygems.org'

обратите внимание, что вторая версия – http, а не http s

Замените источник gsm ssl не-ssl как временное решение:

Причина – старые рубигемы. Сначала вам необходимо обновить системную часть, используя источник non ssl:

gem update --system --source http://rubygems.org/ (временное обновление системной части с использованием не-ssl-соединения).

Теперь вы готовы использовать gem update .

Если вы используете mac и используете недавнюю версию RVM (~ 1.20), для меня работала следующая команда.

 rvm osx-ssl-certs update 

Этот вопрос теперь должен быть исправлен. Обновите rubygems ( gem update --system ), убедитесь, что openssl находится на последней версии вашей ОС или попробуйте эти советы, но все еще не работает: http://railsapps.github.com/openssl-certificate-verify-failed. HTML

Временное решение (как указано в Ownatik):

Создайте или измените файл с именем .gemrc в своем домашнем пути, включая строку :ssl_verify_mode: 0

Это не позволит поставщику проверять SSL-сертификаты драгоценных камней, когда он пытается их установить.

Для устройств * nix «домашний путь» означает ~/.gemrc . Вы также можете создать /etc/gemrc если хотите. Для Windows XP «домашний путь» означает c:\Documents and Settings\All Users\Application Data\gemrc . Для Windows 7, C:\ProgramData\gemrc

В Windows 7 вы можете скачать файл cacert.pem отсюда и установить environementvariable SSL_CERT_FILE на путь, где вы храните сертификат, например

 SET SSL_CERT_FILE="C:\users\\cacert.pem" 

или вы можете установить переменную в своем скрипте как это ENV['SSL_CERT_FILE']="C:/users//cacert.pem"

Замените <имя_пользователя> своим собственным именем пользователя.

Реальное решение этой проблемы, если вы используете RVM:

  1. Обновление rubygems: gem update --system
  2. Используйте RVM для обновления сертификатов SSL: rvm osx-ssl-certs update all

Совет Hat на этот совет в проекте RailsApps !

Для тех из вас, у которых ruby установлен через RVM и требуется быстрое исправление (предпочитая не читать по запросу Бруно), попробуйте это:

 rvm remove 1.9.x (or whatever version of ruby you are using) rvm pkg install openssl rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr 

Для более подробной информации, вот ссылка, где я нашел решение.

http://railsapps.github.com/openssl-certificate-verify-failed.html

Кстати, мне не пришлось прикасаться к моим сертификатам на Ubuntu.

Лучше всего, это не обходной путь. Он будет загружать драгоценные камни через SSL и терпеть неудачу, если есть проблема, подобная человеку в средней атаке, которая намного лучше, чем просто отключить безопасность.

Это исправлено

http://guides.rubygems.org/ssl-certificate-update/

Теперь, когда выпущен RubyGems 2.6.x, вы можете вручную обновить эту версию.

Загрузите https://rubygems.org/downloads/rubygems-update-2.6.7.gem

Загрузите файл в каталог, который вы можете позже указать (например, корень вашего жесткого диска C 🙂

Теперь с помощью командной строки:

 C:\>gem install --local C:\rubygems-update-2.6.7.gem C:\>update_rubygems --no-ri --no-rdoc 

После этого gem -версия должна сообщить о новой версии обновления.

Теперь вы можете безопасно удалить rubygems-update gem:

 C:\>gem uninstall rubygems-update -x 

Вы можете загрузить список сертификатов CA с сайта curl по адресу http://curl.haxx.se/ca/cacert.pem

Затем установите переменную среды SSL_CERT_FILE, чтобы сообщить Ruby о ее использовании. Например, в Linux:

 $ SSL_CERT_FILE=~/cacert.pem bundle install 

(Ссылка: https://gist.github.com/fnichol/867550 )

Простая инструкция для копирования папок, приведенная здесь о файле .pem

https://gist.github.com/luislavena/f064211759ee0f806c88

Ошибка проверки сертификата

Если вы прочитали предыдущие разделы, вы узнаете, что это означает (и позор) на вас, если вы этого не сделали.

Нам нужно загрузить AddTrustExternalCARoot-2048.pem . Откройте командную строку и введите:

C:> gem, rubygems C: /Ruby21/lib/ruby/2.1.0/rubygems.rb Теперь давайте найдем этот каталог. Изнутри того же windows введите часть пути до расширения файла, но вместо этого используйте обратную косую черту:

C:> start C: \ Ruby21 \ lib \ ruby ​​\ 2.1.0 \ rubygems Это откроет окно проводника внутри указанного каталога.

Шаг 3: Скопируйте новый сертификат доверия

Теперь найдите каталог ssl_certs и скопируйте файл .pem, полученный с предыдущего шага внутри.

Он будет указан в других файлах, таких как GeoTrustGlobalCA.pem.

такая же проблема, но с другим драгоценным камнем здесь:

 Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://bb-m.rubygems.org/gems/builder-3.0.0.gem) An error occured while installing builder (3.0.0), and Bundler cannot continue. Make sure that `gem install builder -v '3.0.0'` succeeds before bundling. 

временное решение: gem install builder -v '3.0.0' позволяет продолжить bundle install

Вот как вы исправляете эту проблему в Windows:

загрузите файл .perm, затем установите командную строку SSL_CERT_FILE.

https://gist.github.com/fnichol/867550

Я получаю немного другую ошибку, хотя, возможно, и связанную с Ubuntu 12.04:

 Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=unknown state: sslv3 alert handshake failure (https://d2chzxaqi4y7f8.cloudfront.net/gems/activesupport-3.2.3.gem) An error occured while installing activesupport (3.2.3), and Bundler cannot continue. Make sure that `gem install activesupport -v '3.2.3'` succeeds before bundling. 

Это происходит, когда я запускаю bundle install с source 'https://rubygems.org' в Gemfile.

Это проблема с OpenSSL на Ubuntu 12.04. См. Выпуск Rubygems № 319 .

Чтобы исправить это, запустите apt-get update && apt-get upgrade на Ubuntu 12.04, чтобы обновить OpenSSL.

Простейшее решение:

 rvm pkg install openssl rvm reinstall all --force 

Вуаля!

Я смог проследить это до того, что двоичные файлы, которые rvm , не играют хорошо с OpenSSL OS X, который является старым и больше не используется ОС.

Решением для меня было принудительное компиляцию при установке Ruby через rvm :

 rvm reinstall --disable-binary 2.2 

Мое постоянное исправление для Windows:

  1. Загрузите CACert , сохраните как C:\ruby\ssl_certs\GlobalSignRootCA.pem из http://guides.rubygems.org/ssl-certificate-update/

  2. Создайте системную переменную с именем « SSL_CERT_FILE », установите значение C:\ruby\ssl_certs\GlobalSignRootCA.pem .

  3. Повторите попытку: gem install bundler :

 C:\gem sources *** CURRENT SOURCES *** https://rubygems.org/ C:\gem install bundler Fetching: bundler-1.13.5.gem (100%) Successfully installed bundler-1.13.5 1 gem installed 

Thx to @ Alexander.Iljushkin за:

gem update --system --source http://rubygems.org/

После того, как этот пакет еще не сработал, и решением было следующее:

gem install bundler

Я получал аналогичную ошибку. Вот как я решил это: в вашем каталоге путей проверьте Gemfile. Измените источник в gemfile на http вместо https и сохраните его. Это может установить комплектщик без SSL-сертификата issue.l

Для Windows-машины проверьте версию gem с помощью

 gem --version 

Затем обновите свой камень следующим образом:

  • Бег 1.8.x: скачать 1.8.30
  • Running 2.0.x: скачать 2.0.15
  • Running 2.2.x: скачать 2.2.3

Загрузите файл в каталог, который вы можете позже указать (например, корень вашего жесткого диска C 🙂

Теперь с помощью командной строки:

 C:\>gem install --local C:\rubygems-update-1.8.30.gem C:\>update_rubygems --no-ri --no-rdoc 

Теперь установка пакета будет успешной без проверки SSL-сертификата.

Более подробная инструкция здесь

Это сработало для меня:

  • загрузите последний gem на https://rubygems.org/pages/download
  • установить gem с gem install --local [path to downloaded gem file]
  • обновить драгоценные камни с помощью update_rubygems
  • убедитесь, что вы используете последнюю версию gem --version с gem --version

Мне пришлось переустановить openssl:

 brew uninstall --force openssl brew install openssl 

Недавно я столкнулся с этой проблемой и последовал описанным здесь шагам. Возможно, вы не будете указывать на правильный сертификат OpenSSL. После запуска:

 rvm osx-ssl-certs status all rvm osx-ssl-certs update all 

а также

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

комплект завершен!

Загрузите rubygems-update-2.6.7.gem .

Теперь с помощью командной строки:

 C:\>gem install --local C:\rubygems-update-2.6.7.gem C:\>update_rubygems --no-ri --no-rdoc 

После этого gem --version должна сообщить о новой версии обновления.

Теперь вы можете безопасно удалить rubygems-update gem:

 C:\>gem uninstall rubygems-update -x Removing update_rubygems Successfully uninstalled rubygems-update-2.6.7 

Следует отметить, что если вы захватываете драгоценные камни из источника, которому SSL-сертификат доверен внутренним центром сертификации (или вы подключаетесь к внешнему источнику через веб-прокси-сервер компании с проверкой SSL), укажите переменную env_service_fILE в цепочку сертификатов , Это, скорее всего, просто требует экспорта корневого сертификата из вашего хранилища сертификатов (System Keychain на macOS) в доступное место из вашей оболочки, то есть:

 export SSL_CERT_FILE=~/RootCert.pem 

Если вы используете rails-assets

Если вы используете https://rails-assets.org/ для управления своими активами, вам не помогут никакие ответы. Даже преобразование в http не поможет.

Самое простое исправить – использовать этот источник вместо http://insecure.rails-assets.org . Это было упомянуто на их домашней странице .

Единственное, что сработало для меня в старой системе windows и версии ruby ​​1.9, – это скачать файл cacert из http://guides.rubygems.org/ssl-certificate-update/

Затем выполните команду ниже перед запуском установки пакета

 bundle config --global ssl_ca_cert /path/to/file.pem 
  • Использование SSL и SslStream для одноранговой аутентификации?
  • Как игнорировать создание пути PKIX не удалось: sun.security.provider.certpath.SunCertPathBuilderException?
  • HTTP-HTTPS-туннель
  • Заставить браузер загружать «https» версию веб-сайта, а не «http»?
  • Apache HTTPClient SSLPeerUnverifiedException
  • Настройка Apache для обслуживания нескольких поддоменов через HTTP + HTTPS
  • Подтверждения IPN PayPal IPN с использованием процедур SSL: SSL3_READ_BYTES: сбой вызова подтверждения sslv3
  • Использование сертификатов клиент / сервер для двухсторонней аутентификации SSL-сокета на Android
  • как получить закрытый ключ из файла PEM?
  • JavaMail IMAP через SSL довольно медленно - Массовая выборка нескольких сообщений
  • javax.net.ssl.SSLPeerUnverifiedException: имя хоста не соответствует теме сертификата, предоставленной партнером
  • Interesting Posts

    Как установить приложение по умолчанию для открытия одного файла в Windows 7 и 8?

    Могу ли я изменить язык отображения Windows 7 на версию Home Premium?

    Code First – лучше ли использовать annotations данных или Fluent API?

    Построение двух переменных в виде строк с использованием ggplot2 на одном графике

    Google Chrome перенаправляет localhost на https

    Получить / отправить в веб-службу RESTful

    Эмуляция SD-карты как внутреннего жесткого диска

    Как увеличить размер текущего сфокусированного объекта на RecyclerView?

    Конструктор вызовов Java Reflection с примитивными типами

    Австралийские электронные письма ok

    802.1x с Hyper-V

    Допустимые значения для android: fontFamily и на что они направлены?

    Утилита для определения шрифта, используемого на сайте?

    Свойство DependencyProperty для представления twoway-bind для свойства viewmodel?

    Программное обеспечение для переименования файлов с японскими или корейскими именами символов / букв на их латинизированные (римские / латинские буквы) эквиваленты

    Давайте будем гением компьютера.