As Windows is my primary development machine, I did a setup of Jekyll by following this guide by Julian Thilo. However, I ran into SSL_connect issues while installing the Jekyll gem.
After some research, I found out that this is an issue in Ruby and I would need to manually specify an SSL certificate file. In this post I will share the specific steps I took to resolve this SSL_connect error on my Windows machine.
Ruby SSL_connect error on Windows
After installing Ruby and Ruby Dev Kit on my machine, I ran the command gem install jekyll
, however on first try it produced the following error:
The reason why this error occurs and how to resolve it has been explained in detail by Fletcher Nichol in this gist. Find below the exact steps I took to resolve this SSL certificate verification failure on Windows.
Fixing SSL_connect error on Windows
- Download the cacert.pem file and save this file to
C:\Rails\Installer\cacert.pem
- Open System in Control Panel
- Go to Advanced System Settings
- Click on Environment Variables
- Define a new System Variable with
SSL_CERT_FILE=C:\Rails\Installer\cacert.pem
as shown in screen-shot below - Close and reopen your command prompt for allowing the changes to take place
Now we have the SSL certificate file defined permanently in our System settings. This will allow us to install Ruby gems without anymore SSL errors. You should be able to install Jekyll as well as other Ruby gems such as Rouge, Bundle etc. In case you find the install command to be stuck for long time try running the following command to get a more verbose output.
gem install jekyll --debug -V
Hope you found this post useful and will be able to setup Jekyll on your Windows machine. :)
Just run
gem source –remove https://rubygems.org
to kick https source out, and leave http://rubygems.org.
While this would work, leaving out https is not really fixing the problem. Just avoiding it.
Many Thanks!
Thanks man. Lifesaver!
Thanks a lot man!, everything is working now!
You said save it to – C:RailsInstallercacert.pem
So is that path or file name and Is it necessary to save only to that path?
Hi Kiran,
That is a path and you can save it to any location. Just make sure to set the value of SSL_CERT_FILE to the location where you save the pem file.
Hello Kanishk Kunal.
when ever i run the command “gem install rails”, i always get this error.
ERROR: Could not find a valid gem ‘rails’ = 0>, here is why: Unable to download data from https://rubygems.org/ – SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
i tried out the solution you gave above but i still get the same error message. please kindly help me out.
Hi Amos,
Please make sure you have correct path set for SSL_CERT_FILE.
You can check whether you have correct environment variable set or not by running the following command in your command prompt.
echo %SSL_CERT_FILE%
This should output the location where your cert files are stored.
thanks! was almost about to throw the computer into a busy street and this prevented that.
Thank you so much :)
Thanks. super helpful.
Thanks for this trick. My derivative solution for my standard ruby installation (simply installed using rubyinstaller on win10 64 bits) :
Just place the “cacert.pem” in the “rubygems/ssl_certs/” directory (in C:\ruby23-x64\lib\2.3.0 for my own installation) and that’s all.
Gelth is right just add the cacert.pem file to the existing ‘rubygems\ssl_certs’ directory of your existing ruby installation. In my case Windows 7 and installed ruby via Chocolatey the ssl certs directory of ruby by deafult is located at ‘C:\tools\ruby23\lib\ruby\2.3.0\rubygems\ssl_certs’
That’s where I added it, too.
This solved it for me too. I just saved the cert into the already existing `ssl_certs` folder.
This solution works for me as well.
Thanks, this worked great for me. Didn’t need to set any environment variables.
I didn’t find any working solution until I read your comment! Thank you so much!
Thank you! I was about to give up trying to install Jekyll on Windows when I found this. Installed! Now I can start playing.
Thanks a lot! now it works!
Thanks very very thanks
thanks buddy, saved a lot of time.
Thanks Kanishk!
Kanishk Gelth Alex thanks so much!
it works for me, very thanks
Hi I am getting the below issue
ERROR: SSL verification error at depth 2: unable to get local issuer certificate (20)
ERROR: You must add /C=US/O=BlueCoat Systems, Inc./CN=Cloud Services Root CA to your local trusted store
ERROR: Could not find a valid gem ‘compass’ (>= 0), here is why:
Unable to download data from https://rubygems.org/ – SSL_connect returned=1 errno=0 peeraddr=151.101.1.227:443 state=error: certificate verify failed (unable to get local issuer certificate) (https://rubygems.org/specs.4.8.gz)
Is there anything you can help me with
Hi.
It’s 2024 and this post is still helping us Ruby newbies. Thanks for taking the time to make it.