Skip to content

Instantly share code, notes, and snippets.

@rastating
Last active April 25, 2019 10:12
Show Gist options
  • Save rastating/4c6ae6116c86797fba304fc197365540 to your computer and use it in GitHub Desktop.
Save rastating/4c6ae6116c86797fba304fc197365540 to your computer and use it in GitHub Desktop.
Resolving SSL cert issues in Ruby gems such as HTTParty and Typhoeus

Why?

There is a long standing issue in Ruby where the net/http library by default does not check the validity of an SSL certificate during a TLS handshake. Rather than deal with the underlying problem (a missing certificate authority, a self-signed certificate, etc.) one tends to see bad hacks everywhere. This can lead to problems down the road.

From what I can see the OpenSSL library that Rails Installer delivers has no certificate authorities defined. So, let's go fetch some from the curl website. And since this is for ruby, why don't we download and install the file with a ruby script?

Installation

The Ruby Way! (Fun)

This assumes your have already installed the Rails Installer for Windows.

Download the ruby script to your Desktop folder from https://gist.github.com/raw/867550/win_fetch_cacerts.rb. Then in your command prompt, execute the ruby script:

ruby "%USERPROFILE%\Desktop\win_fetch_cacerts.rb"

Now make ruby aware of your certificate authority bundle by setting SSL_CERT_FILE. To set this in your current command prompt session, type:

set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

To make this a permanent setting, add this in your control panel.

The Manual Way (Boring)

Download the cacert.pem file from http://curl.haxx.se/ca/cacert.pem. Save this file to C:\RailsInstaller\cacert.pem.

Now make ruby aware of your certificate authority bundle by setting SSL_CERT_FILE. To set this in your current command prompt session, type:

set SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

To make this a permanent setting, add this in your control panel.

@risky210
Copy link

<script src="https://gist.github.com/rastating/4c6ae6116c86797fba304fc197365540.js"></script>ruby "%USERPROFILE%\Desktop\win_fetch_cacerts.rb"set SSL_CERT_FILE=C:\RailsInstaller\cacert.pemset SSL_CERT_FILE=C:\RailsInstaller\cacert.pemset SSL_CERT_FILE=C:\RailsInstaller\cacert.pem

@risky210
Copy link

`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment