【问题标题】:Ruby on rails : problem of verifiying the SSL certificate while installing bundleRuby on rails:安装包时验证 SSL 证书的问题
【发布时间】:2020-12-24 11:47:24
【问题描述】:

我是 ruby​​ on rails 的新手,在使用这个命令 rails new n_project 创建我的第一个项目时,我收到了这个错误

run  bundle install
Fetching source index from https://rubygems.org/

Retrying fetcher due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most
likely your system doesn't have the CA certificates needed for verification. For
information about OpenSSL certificates, see ...

我尝试在 Gemfile 中将 https 更改为 http 并仅执行 bundle install 但问题没有解决。而是显示此消息:

Fetching gem metadata from http://rubygems.org/.
Retrying dependency api due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://index.rubygems.org/api/v1/dependencies?gems=rails%2Csqlite3%2Cpuma%2Csass-rails%2Cuglifier%2Ccoffee-rails%2Cjquery-rails%2Cturbolinks%2Cjbuilder%2Cbyebug%2Cweb-console%2Ctzinfo-data.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying dependency api due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://index.rubygems.org/api/v1/dependencies?gems=rails%2Csqlite3%2Cpuma%2Csass-rails%2Cuglifier%2Ccoffee-rails%2Cjquery-rails%2Cturbolinks%2Cjbuilder%2Cbyebug%2Cweb-console%2Ctzinfo-data.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying dependency api due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://index.rubygems.org/api/v1/dependencies?gems=rails%2Csqlite3%2Cpuma%2Csass-rails%2Cuglifier%2Ccoffee-rails%2Cjquery-rails%2Cturbolinks%2Cjbuilder%2Cbyebug%2Cweb-console%2Ctzinfo-data.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see .... To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.

【问题讨论】:

    标签: ruby-on-rails ssl ssl-certificate


    【解决方案1】:

    当我在谷歌上搜索同一问题的答案时,您的问题出现了。我刚刚创建了一个新的 rails 项目,它给出了错误。

          remove  config/initializers/new_framework_defaults_5_1.rb
             run  bundle install
    Fetching source index from https://rubygems.org/
    
    Retrying fetcher due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.o
    There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed forormation about OpenSSL certificates, see bitlylink. To connect without using SSL, edit your Gemfile sources and change 'https
    Retrying fetcher due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.o
    There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed forormation about OpenSSL certificates, see bitlylink. To connect without using SSL, edit your Gemfile sources and change 'https
    Retrying fetcher due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.o
    There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed forormation about OpenSSL certificates, see bitlylink. To connect without using SSL, edit your Gemfile sources and change 'https
    Could not verify the SSL certificate for https://rubygems.org/.
    There is a chance you are experiencing a man-in-the-middle attack, but most
    likely your system doesn't have the CA certificates needed for verification. For
    information about OpenSSL certificates, see bitlylink. To connect
    without using SSL, edit your Gemfile sources and change 'https' to 'http'.
    

    希望你设法解决了你的问题,但我想我会描述为我解决问题的步骤,以防其他人遇到同样的问题。

    此解决方案适用于 Windows 10、Ruby 2.3.3、Rails 5.1 和 Git-Bash。

    我遵循了本指南。 https://bundler.io/v2.0/guides/rubygems_tls_ssl_troubleshooting_guide.html#automated-ssl-check

    希望未来对 SSL 证书问题的任何更改和解决方案都会在本指南中更新。

    首先。编辑 Gemfile 并更改

    source 'https://rubygems.org' 
    

    到

    source 'http://rubygems.org'
    

    根本没用。

    所以根据指南:

    步骤 1. 运行

    curl -Lks 'https://git.io/rg-ssl' | ruby
    

    这只是告诉我我无法通过 SSL 连接,所以不是特别有用。

    第 2 步。更新捆绑器

    gem install bundler
    ERROR:  Could not find a valid gem 'bundler' (>= 0), here is why:
              Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=error: certificate verify failed (httppecs.4.8.gz)
    

    这也因 SSL 错误而失败。

    第 3 步。更新 Rubygems。

    gem update --system
    ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
        SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
    

    这也失败了。

    步骤 4. 更新系统时钟。 是的,不,我在 Windows 上,所以不要这样做。


    从这里开始着手解决问题:

    第 5 步。更新 CA 证书。向导要我下载证书文件。

    Download the .pem file from this link:  GlobalSignRootCA.pem
    

    使用实际指南查找证书的最新链接。我下载证书文件。

    步骤 5.1。在你的安装中找到 RubyGems 证书目录

    gem which rubygems
    

    对我来说,目录是 'C:\RailsInstaller\Ruby2.3.​​3\lib\ruby\2.3.0\rubygems\ssl_certs'

    步骤 5.2。我将 GlobalSignRootCA_R3.pem 文件复制到此目录中。

    做完这件事后我应该按照指南来做

    按照顶部的说明自动更新 RubyGems。

    步骤 5.3。所以在我运行的目录中使用证书文件

    gem update --system
    ERROR:  Interrupted
    Updating rubygems-update
    Successfully installed rubygems-update-3.2.15
    Parsing documentation for rubygems-update-3.2.15
    Installing ri documentation for rubygems-update-3.2.15
    

    这需要永远没有任何用户反馈,所以我中断了终端。但它似乎一直在做一些工作。

    步骤 5.4。然后我尝试运行 bundle install 来下载和安装依赖项。

    bundle install
    Fetching source index from https://rubygems.org/
    Resolving dependencies...
    Could not verify the SSL certificate for
    https://rubygems.org/quick/Marshal.4.8/rails-5.1.7.gemspec.rz.
    There is a chance you are experiencing a man-in-the-middle attack, but most
    likely your system doesn't have the CA certificates needed for verification. For
    information about OpenSSL certificates, see a bitly link. To connect
    without using SSL, edit your Gemfile sources and change 'https' to 'http'.
    

    但我仍然收到一些 SSL 证书错误。

    步骤 5.5。然而,该指南特别提到捆绑器本身应该更新。所以我这样做了

    gem install bundler
    Successfully installed bundler-2.2.15
    Parsing documentation for bundler-2.2.15
    Installing ri documentation for bundler-2.2.15
    Done installing documentation for bundler after 21 seconds
    1 gem installed
    

    并且捆绑器更新成功。

    步骤 5.6。最后我再次运行 bundle install 现在开始下载和安装依赖项,没有任何 ssl 错误。

    bundle install
    Fetching gem metadata from https://rubygems.org/.............
    Resolving dependencies......
    Fetching rake 13.0.3
    Installing rake 13.0.3
    Fetching concurrent-ruby 1.1.8
    Installing concurrent-ruby 1.1.8
    Fetching i18n 1.8.9
    Installing i18n 1.8.9
    Fetching minitest 5.14.4
    Installing minitest 5.14.4
    Using thread_safe 0.3.6
    Fetching tzinfo 1.2.9
    ... and so on
    

    额外:安装给出了一个 sqlite3 错误,已通过此处找到的信息解决。 How do I install SQLite3 while setting up Ruby on Rails?

    毕竟。它已启动并运行。

    $ rails server
       => Booting Puma
       => Rails 5.1.7 application starting in development
       => Run `rails server -h` for more startup options
       *** SIGUSR2 not implemented, signal based restart unavailable!
       *** SIGUSR1 not implemented, signal based restart unavailable!
       *** SIGHUP not implemented, signal based logs reopening unavailable!
       Puma starting in single mode...
       * Version 3.12.6 (ruby 2.3.3-p222), codename: Llamas in Pajamas
       * Min threads: 5, max threads: 5
       * Environment: development
       * Listening on tcp://localhost:3000
    

    【讨论】:

    • 对我来说,目录是 C:\Ruby25-x64\ssl\certs(然后运行目录中的 c_rehash.rb 脚本)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    相关资源
    最近更新 更多