OpenSSL for Ruby

OpenSSL for Ruby provides access to SSL/TLS and general-purpose cryptography based on the OpenSSL library.

OpenSSL for Ruby is sometimes referred to as openssl in all lowercase or Ruby/OpenSSL for disambiguation.

Compatibility and maintenance policy

OpenSSL for Ruby is released as a RubyGems gem. At the same time, it is part of the standard library of Ruby. This is called a default gem.

Each stable branch of OpenSSL for Ruby will remain supported as long as it is included as a default gem in supported Ruby branches.

Version Maintenance status Ruby compatibility OpenSSL compatibility
3.2.x normal maintenance (Ruby 3.3) Ruby 2.7+ OpenSSL 1.0.2-3.3 (current) or LibreSSL 3.1+
3.1.x normal maintenance (Ruby 3.2) Ruby 2.6+ OpenSSL 1.0.2-3.3 (current) or LibreSSL 3.1+
3.0.x security maintenance (Ruby 3.1) Ruby 2.6+ OpenSSL 1.0.2-3.3 (current) or LibreSSL 3.1+
2.2.x end-of-life (Ruby 3.0) Ruby 2.3+ OpenSSL 1.0.1-1.1.1 or LibreSSL 2.9+
2.1.x end-of-life (Ruby 2.5-2.7) Ruby 2.3+ OpenSSL 1.0.1-1.1.1 or LibreSSL 2.5+
2.0.x end-of-life (Ruby 2.4) Ruby 2.3+ OpenSSL 0.9.8-1.1.1 or LibreSSL 2.3+


Note The openssl gem is included with Ruby by default, but you may wish to upgrade it to a newer version available at

To upgrade it, you can use RubyGems:

gem install openssl

In some cases, it may be necessary to specify the path to the installation directory of the OpenSSL library.

gem install openssl -- --with-openssl-dir=/opt/openssl

Alternatively, you can install the gem with Bundler:

# Gemfile
gem 'openssl'
# or specify git master
gem 'openssl', git: ''

After running bundle install, you should have the gem installed in your bundle.


Once installed, you can require “openssl” in your application.

require "openssl"




Please read our for instructions.


Security issues should be reported to ruby-core by following the process described on “Security at”.