Could not verify the SSL certificate for https://rubygems.org/ - ruby-on-rails

I'm getting this error when I run bundle install:
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 bit.ly/ruby-ssl. To connect without using
SSL, edit your Gemfile sources and change 'https' to 'http'.
However, it is only happening to one of my projects, and seems to be happening to only me. Also, I can get around it by running bundle update, where I don't get that error, and I can get up a running after that.
Is there something that isn't tracked in the project (that is only on my machine) that I have misconfigured?

I had this problem on Mac OS X Yosemite with ruby 2.3.1.
I fixed the problem by downloading http://curl.haxx.se/ca/cacert.pem to
/usr/local/etc/openssl/
and adding this line export SSL_CERT_FILE=/usr/local/etc/openssl/cacert.pem to .bash_profile
Credit to Can't run Ruby 2.2.3 with RVM on OSX but it was hard to google the right answer, so added to this page.

The solution for me on OS X 10.9.5 was to sudo rvm osx-ssl-certs update all.
Source: http://jacopretorius.net/2013/10/could-not-verify-the-ssl-certificate-for-rubygems.html

Running gem update --system worked for me

For linux users, simply install the package: ca-certificates

Since I am using rbenv instead of rvm, I wasn't able to do most of the solutions online.
I was able to fix the issue by uninstalling and reinstalling openssl
All is well, but I am not exactly sure why.

Upgrading openssl should fix the issue.(if it's MacOSX)
brew upgrade openssl

Using OSX 10.14.6 and Rails 6 this worked for me:
rvm osx-ssl-certs update

Maybe this method will be useful
1.Switch source to https://gems.ruby-china.org/
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
2.Check current source
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.org
3.Mirror gem source
$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org
Through these methods, you will not need to change Gemfile souce.
Hope this method will be useful for you.

Related

Installing unf_ext 0.0.7.2 not working

So when I try running bundle install --without production it tells me that I am getting an error and that I need to Make sure that gem install unf_ext -v 0.0.7.2 succeeds before bundling. I have not gotten this error before while installing other gems, but only when I try and install gem stripe(which is used for receiving user payments and such).
Could someone explain what could be causing this kind of problem. All help is greatly appreciated.
Thanks,
-Aaron
EDIT
What I did to solve my problems was updating all of my gems to their current and latest version. Then when I ran bundle install --without production everything seemed to install perfectly fine after that.
This error can come across due to various reasons, so it's not easy to tell what might have really caused, preventing you from bundle install, so try the following fixes, if not worked please give more details on errors that appears :)
If the error was because of missing gmkdir, then run the following command:
brew install coreutils
If the error was due to missing C++ headers related then run the bellow command:
yum install gcc-c++
Also have a look at the developer's home page given below to check you meet all dependencies required:
unf_ext 0.0.7.2 : Unicode Normalization Form support library for CRuby
After updating to Mojave MacOS version, the ruby 'lost' the reference.
To solve
$ rvm list
In my case, the version listed was:
ruby-2.5.1 [ x86_64 ]
$ rvm use ruby-2.5.1
to change to 'current' version used
$ rvm list again
to see the current version
=> ruby-2.5.1 [ x86_64 ]
After that everything are okay running bundle install or bundle update or gem install or gem update
I just have the same problem when i try to install vagrant plugin, you need to install ruby-devel before.
Hope this help you.
I ran into this deploying to a remote box. As suggested in comments, I was able to fix it by opening a console session on the affected box and running:
gem update rails
gem install unf_ext -v '0.0.7.2'
And I was then able to deploy successfully.
I resolved this issue by upgrading bundler. Simply run:
gem install bundler
which fetches the latest bundler. Then, try running:
bundle install
I got same problem. It happens after I upgrading my macOS to newer version.
Somehows, upgrading mess up /usr/local/include. So that I removed it and run install. It worked
sudo mv /usr/local/include/ /usr/local/include.delete_me
Similar to the comment of Luke, xcode-select did the job for me. But instead of switching it to a different location, I just reverted the selected version to default, although I cannot remember to ever have changed it.
sudo xcode-select -r
After that bundle install and bundle update worked fine for me again.
I was having the exact same issue trying to install this specific gem and version as well. Turns out my VPS would run out of RAM while compiling and quit. I just killed off a few processes I could live without for a few minutes and it worked...
I solved this issue by running
sudo xcodebuild -license
I was working with docker and docker compose. similar issue arised to me. I deleted the image, removed all associated containers with the application and rebuilt the image with docker build . created the container with docker-compose up inside the working directory and it started working. this solution is specific to those using docker and docker-compose. Hope it helps someone. I am still not sure about the reason why is this happening.
this can be solved installing ruby-dev
and then gem install unf_ext -v 0.0.7.2
I ran into this issue getting
Installing unf_ext 0.0.8 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/jfn0296/.rvm/gems/ruby-3.0.0/gems/unf_ext-0.0.8/ext/unf_ext
/Users/jfn0296/.rvm/rubies/ruby-3.0.0/bin/ruby -I /Users/jfn0296/.rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0 -r
./siteconf20220120-59736-elnfu0.rb extconf.rb
checking for -lstdc++... yes
creating Makefile
current directory: /Users/jfn0296/.rvm/gems/ruby-3.0.0/gems/unf_ext-0.0.8/ext/unf_ext
make "DESTDIR=" clean
current directory: /Users/jfn0296/.rvm/gems/ruby-3.0.0/gems/unf_ext-0.0.8/ext/unf_ext
make "DESTDIR="
compiling unf.cc
make: *** [unf.o] Error 1
make failed, exit code 2
After trying many of these listed, using rvm I uninstalled and reinstalled my ruby-3.0.0 and tried bundling again and this time it worked. Did not see a solution like that here so I thought I'd share.

Error installing Ruby gem Jekyll [duplicate]

I'm having some trouble installing jekyll. Can't quite figure out how to patch the missing link. I think it's an update to Ruby, but RVM is having trouble installing alternate versions of ruby as well.
Heres the full post:
$ sudo gem install jekyll
ERROR: Error installing jekyll:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/fast-stemmer-1.0.1 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/fast-stemmer-1.0.1/ext/gem_make.out
Does this mean I need to update the version of ruby I'm using via rvm?
Ubuntu
sudo apt-get install ruby-dev
gem install jekyll
Your problem is that either you system doesn't know where make is located at or you don't have it installed. The easiest way to fix this (and probably other issues you'll run into trying to get a ruby system up and running) is to install xcode.
You can get it at http://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 for lion. Or it came on a CD with your computer for earlier versions.
If you're using Lion, please see comments below for a link to how to install developer tools on Lion.
I had the same error on Ubuntu and this helped me sort it out.
You must have ruby-dev installed
apt-get install ruby-dev
If you installed XCode and command line tools are still missing go to Terminal and
xcode-select --install
it will prompt you to install these tools. After that just follow SrBlanco´s answer. That solved the problem for me.
Good luck.
Need to install "make".
I am using Ubuntu 12.10.
sudo apt-get install make
Should work on any Debian based distro.
Note: this problem also occurs on newer MacBook Pro models that come with Mavericks pre-installed. I updated another post with my own solution that didn't involve Xcode at all. My system had the Xcode developer tools installed when I got the machine.
ERROR: Error installing jekyll: ERROR: Failed to build gem native extension
Install Xcode as mentioned if you don't have it installed already (https://developer.apple.com/xcode/). Plus you need the command line tools.
Open Xcode. Go to Preferences > Downloads > Install Command Line Tools
Installing command line tools for Xcode solved the problem for me on my Mac
xcode-select --install.
sudo apt-get install ruby-dev
sudo gem install jekyll
hope this will help, it works with me.
I had this same exact error when trying to install Jekyll, and the following steps from this link helped me. Just in case anyone else comes across this!
http://davidensinger.com/2013/03/installing-jekyll/
I was facing the same issue in my Fedora 22 setup. I had ruby installed but didn't have ruby-devel. Installing ruby-devel fixed the issue for me.
dnf install -y ruby-devel
For older systems:
yum install -y ruby-devel
I followed this on Ubuntu/Linux Mint
sudo apt install build-essential
sudo apt install ruby-dev
sudo gem install jekyll
An addendum: You can install XCode now from the App Store on Mountain Lion. The process is transparent and pretty fast.
I had the same problems with you.
I use Mac OS X 10.9 develop preview version, and I had installed gcc and Xcode.
But my Xcode version is 4.6.
Then I install the Xcode 5.0
After that I type sudo gem install jekyll in the terminal again. Then it works.
Wish it could help someone.
Installing Xcode and going to perferencs > downloads > install commandline tools WORKS!
Same problem on Debian, I had forgot to run this command:
~/.rvm/scripts/rvm
All these answers did NOT work for me.
If you're looking for a solution on ubuntu 14.04, do this:
sudo apt-get install ruby1.9.1-dev zlib1g-dev nodejs
sudo gem install jekyll -v 2.5.3
Unfortunately, nodejs is required because of a bug in Jekyll that enforces existence of runtime JS engine even though it doesn't need one.
For Ubuntu, this helped in my case:
apt-get install libffi-dev
A general advice is to just follow what is displayed as the reason for the error and hopefully you'll be provided with a log file in which the first line suggests which package should be installed, in my case:
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/ffi-1.9.21/mkmf.log
MacOS
my solution to this problem
install xcode
type xcode-select --install in the command line
type sudo gem install jekyll in the command line
PS: It is the combination of the two answers in this question.
You are missing the ruby-dev file , just go ahead and run this command - sudo apt-get install ruby-dev
Hope this helps!!
I had the same issue on my macOS(10.14.2), the reason may be:
Apparently with OSX el Capitan, there is a new security function that prevents you from modifying system files called Rootless.
My solution is using rvm:
install ruby on Mac OS X with RVM
gem install jekyll
On windows I have this issue
I actually installed the version rubyinstaller-devkit-2.6.3-1-x64 of ruby
I have removed the ruby completely and Installed the rubyinstaller-devkit-2.5.5-1-x64
and issued the following commands on powershell
gem install bundler
gem install jekyll
and this time no errors where found
I had this issue and of all things, the error was occurring because I hadn't agreed to some updated terms of service in xcode. Running the following did the trick for me. Go figure.
sudo xcodebuild -license accept
For me, I had to upgrade homebrew and install rbenv to the latest ruby version. After that, I followed the instruction at jekyll website. My OS is Catalina 2019, I couldn't install Xcode, which is not compatible yet!
You have to set the path in your .bash_profile to make sure that it initializes the rbenv when you restart your terminal.
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
then
$ rbenv version
2.2.3 (set by /Users/mislav/.rbenv/version)
$ rbenv shell
rbenv: no shell-specific version configured
hope that help!
Here is the (only?) reliable and simple way to install Jekyll on macOS
Install UTM
Install Ubuntu Server
Install Jekyll using Ubuntu instructions at https://jekyllrb.com/docs/installation/ubuntu/
Forward port 22 in the VM settings (22->localhost->22)
Use VS Code on the macOS host
Install Remote SSH
Connect to USER#localhost
Drag and drop the folder on Mac into VS Code (this transfers files to remote)
Enable port forwarding for 4000 (bottom bar on VS Code)
Work on your website
Right click on your website on the file explorer and click download
If you have not done these steps, you might be delighted by:
Ubuntu imports your public SSH key from GitHub
VS Code magically handles file transfer in and out
VS Code magically installs your VS Code extensions onto the remote server and allows file search on the remote host

RoR: Could not load OpenSSL (after Apple's Bash fix today)

Hoping someone can help explain and or advise me on this error I'm catching after i tried to re-install rails via rvm after running Apple's bash shellshock fix today.
I upgraded to OSX 10.9.5 mav and ran the Bash Shellshock, then my RoR apps needed rails re-installed. When I try to bundle install I get the following:
Could not load OpenSSL.
You must recompile Ruby with OpenSSL support or change the sources in your Gemfile from 'https' to 'http'. Instructions for
compiling with OpenSSL using RVM are available at rvm.io/packages/openssl.
Remove the Ruby version you installed with RVM
$ rvm remove ruby-2.1.2
and reinstall it
$ rvm install ruby-2.1.2

I can't install rails on OSX 10.7.5

Whenever I run
sudo gem install rails
I get the following output:
ERROR: Loading command: install (LoadError)
cannot load such file -- openssl
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
RVM version: rvm 1.18.14
and Ruby is 2.0.0p0
you need to reinstall your rubies:
rvm get head --autolibs=3
rvm pkg remove
rvm reinstall all --force
the new autolibs supporrt will take care of updating dependencies and including them in ruby
Do you have Homebrew installed on your system? If so, try
brew install openssl
in the command line.
hmm, you have rvm but why you need sudo?I thought rvm is in sandbox mode . Anyway, the error just means it can't find ssl path. First, make sure you have openssl installed. If not then you need to install it(brew, macport etc) or rvm pkg install openssl and let rvm manage its path(you have rvm already). After that, you will need to reinstall ruby. RVM guide is here
You don't use sudo. sudo is ONLY used for doing a multi-user install, and only then during the initial installation, and adding your user to the rvm group (if the installer did not do it for you which usually indicates you did the install wrong in the first place)
I figured it out!
So First I removed everything to do with RVM as suggested in some of the answers. Rebooted. Installed the latest Version of Xcode and the command line tools from Xcode (Xcode-prefereces-downloads). Then rebooted again, and finally used RailsInstaller. Once I used that rails was back on and all is good in the world. Thanks for the help everyone.

bundle install fails with SSL certificate verification error

When I run bundle install for my Rails 3 project on Centos 5.5 it fails with an error:
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.
When I try to install the gem manually (by gem install multi_json -v '1.3.2') it works. The same problem occurs with several other gems. I use RVM (1.12.3), ruby 1.9.2, bundler 1.1.3.
How to fix it?
Update
Now that I've karma wh..err mined enough from this answer everyone should know that this should have been fixed.
re: via Ownatik again bundle install fails with SSL certificate verification error
gem update --system
My answer is still correct and left below for reference if that ends up not working for you.
Honestly the best temporary solution is to
[...] use the non-ssl version of rubygems in your gemfile as a temporary workaround.
via user Ownatik
what they mean is at the top of the Gemfile in your rails application directory change
source 'https://rubygems.org'
to
source 'http://rubygems.org'
note that the second version is http instead of https
Replace the ssl gem source with non-ssl as a temp solution:
gem sources -r https://rubygems.org/
gem sources -a http://rubygems.org/
The reason is old rubygems. You need to update system part using non ssl source first:
gem update --system --source http://rubygems.org/ (temporarily updating system part using non-ssl connection).
Now you're ready to use gem update.
If you're on a mac and use a recent version of RVM (~1.20), the following command worked for me.
rvm osx-ssl-certs update
This issue should now be fixed. Update rubygems (gem update --system), make sure openssl is at the latest version on your OS, or try these tips of it's still not working: http://railsapps.github.com/openssl-certificate-verify-failed.html
Temporary solution (as alluded to by Ownatik):
Create or modify a file called .gemrc in your home path, including the line :ssl_verify_mode: 0
This will prevent bundler from checking the SSL certificates of gems when it attempts to install them.
For *nix devices, 'home path' means ~/.gemrc. You can also create /etc/gemrc if you prefer. For Windows XP, 'home path' means c:\Documents and Settings\All Users\Application Data\gemrc. For Windows 7, C:\ProgramData\gemrc
On windows7 you can download the cacert.pem file from here and set the environementvariable SSL_CERT_FILE to the path where you store the certificate eg
SET SSL_CERT_FILE="C:\users\<username>\cacert.pem"
or you can set the variable in your script like this ENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem"
Replace <username> with you own username.
The real solution to this problem, if you are using RVM:
Update rubygems: gem update --system
Use RVM to refresh SSL certs: rvm osx-ssl-certs update all
Hat tip to this tip on the RailsApps project!
You can download a list of CA certificates from curl's website at http://curl.haxx.se/ca/cacert.pem
Then set the SSL_CERT_FILE environment variable to tell Ruby to use it. For example, in Linux:
$ SSL_CERT_FILE=~/cacert.pem bundle install
(Reference: https://gist.github.com/fnichol/867550)
For those of you that have ruby installed through RVM and want a quick fix (preferring not to read per Bruno's request) just try this:
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
For a more details, here is the link where I found the solution.
http://railsapps.github.com/openssl-certificate-verify-failed.html
BTW, I didn't have to touch my certificates on Ubuntu.
Best of all, this isn't a workaround. It will download gems through
SSL and fail if there if there is a problem like a man in the middle
attack which is much better than just turning off security.
This has been fixed
http://guides.rubygems.org/ssl-certificate-update/
Now that RubyGems 2.6.x has been released, you can manually update to this version.
Download https://rubygems.org/downloads/rubygems-update-2.6.7.gem
Please download the file in a directory that you can later point to (eg. the root of your harddrive C:)
Now, using your Command Prompt:
C:\>gem install --local C:\rubygems-update-2.6.7.gem
C:\>update_rubygems --no-ri --no-rdoc
After this, gem --version should report the new update version.
You can now safely uninstall rubygems-update gem:
C:\>gem uninstall rubygems-update -x
Simple copy paste instruction given here about .pem file
https://gist.github.com/luislavena/f064211759ee0f806c88
For certificate verification failed
If you've read the previous sections, you will know what this means (and shame > on you if you have not).
We need to download AddTrustExternalCARoot-2048.pem.
Open a Command Prompt and type in:
C:>gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb
Now, let's locate that directory. From within the same window, enter the path part up to the file extension, but using backslashes instead:
C:>start C:\Ruby21\lib\ruby\2.1.0\rubygems
This will open a Explorer window inside the directory we indicated.
Step 3: Copy new trust certificate
Now, locate ssl_certs directory and copy the .pem file we obtained from previous step inside.
It will be listed with other files like GeoTrustGlobalCA.pem.
same problem but with different gem here:
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.
temporarily solution: gem install builder -v '3.0.0' makes it possible to continue bundle install
The simplest solution:
rvm pkg install openssl
rvm reinstall all --force
Voila!
This is How you fix this problem on Windows:
download .perm file then set the SSL_CERT_FILE in command prompt
https://gist.github.com/fnichol/867550
My permanent fix for Windows:
Download the CACert , save as C:\ruby\ssl_certs\GlobalSignRootCA.pem from http://guides.rubygems.org/ssl-certificate-update/
Create system variable named "SSL_CERT_FILE", set to C:\ruby\ssl_certs\GlobalSignRootCA.pem.
Try again: 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
I get a slightly different error, though perhaps related, on 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.
It happens when I run bundle install with source 'https://rubygems.org' in a Gemfile.
This is an issue with OpenSSL on Ubuntu 12.04. See Rubygems issue #319.
To fix this, run apt-get update && apt-get upgrade on Ubuntu 12.04 to upgrade your OpenSSL.
I was able to track this down to the fact that the binaries that rvm downloads do not play nice with OS X's OpenSSL, which is old and is no longer used by the OS.
The solution for me was to force compilation when installing Ruby via rvm:
rvm reinstall --disable-binary 2.2
Thx to #Alexander.Iljushkin for:
gem update --system --source http://rubygems.org/
After that bundler still failed and the solution to that was:
gem install bundler
I was getting a similar error. Here is how I solved this: In your path directory, check for Gemfile. Edit the source in the gemfile to http instead of https and save it. This might install the bundler without the SSL certificate issue.l
For Windows machine, check your gem version with
gem --version
Then update your gem as follow:
Running 1.8.x: download 1.8.30
Running 2.0.x: download 2.0.15
Running 2.2.x: download 2.2.3
Please download the file in a directory that you can later point to (eg. the root of your hard drive C:)
Now, using your Command Prompt:
C:\>gem install --local C:\rubygems-update-1.8.30.gem
C:\>update_rubygems --no-ri --no-rdoc
Now, bundle install will success without SSL certificate verification error.
More detailed instruction is here
This worked for me:
download latest gem at https://rubygems.org/pages/download
install the gem with gem install --local [path to downloaded gem file]
update the gems with update_rubygems
check that you're on the latest gem version with gem --version
I had to reinstall openssl:
brew uninstall --force openssl
brew install openssl
I was just recently faced with this issue and followed the steps outlined here. There might be a chance that you are not pointing to the right OpenSSL certificate. After running:
rvm osx-ssl-certs status all
rvm osx-ssl-certs update all
and
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
the bundle complete ran!
Download rubygems-update-2.6.7.gem .
Now, using your Command Prompt:
C:\>gem install --local C:\rubygems-update-2.6.7.gem
C:\>update_rubygems --no-ri --no-rdoc
After this, gem --version should report the new update version.
You can now safely uninstall rubygems-update gem:
C:\>gem uninstall rubygems-update -x
Removing update_rubygems
Successfully uninstalled rubygems-update-2.6.7
To note, if you're grabbing gems from a source which SSL cert is trusted by an internal certificate authority (or you are connecting to an external source through a company web proxy with SSL inspection), point your SSL_CERT_FILE env variable to your certificate chain. This most likely just requires exporting your root certificate from your certificate store (System Keychain on macOS) to an accessible location from your shell i.e.:
export SSL_CERT_FILE=~/RootCert.pem
If you're using rails-assets
If you were using https://rails-assets.org/ to manage your assets, no answers will help you. Even converting to http won't help.
The simplest fix is using this source instead, http://insecure.rails-assets.org. This has been mentioned in their homepage.
The only thing that worked for me on legacy windows system and ruby 1.9 version is downloading cacert file from
http://guides.rubygems.org/ssl-certificate-update/
And then running below command before running bundle install
bundle config --global ssl_ca_cert /path/to/file.pem

Resources