Skip to content

A gem to make generating self-signed SSL certificates on your Mac easier

License

Notifications You must be signed in to change notification settings

viamin/rails_dev_ssl

Repository files navigation

RailsDevSsl

rails_dev_ssl is a command line utility that takes some of the work out of generating the SSL certificates for local development.

This utility will help you set up your development machine to serve your Rails API over HTTPS.

Installation

Add this line to your application's Gemfile:

gem 'rails_dev_ssl', group: :development

And then execute:

bundle

Or install it yourself as:

gem install rails_dev_ssl

Usage

For a list of available commands, run

rails_dev_ssl

Generate certificates

rails_dev_ssl generate_certificates

will create a new directory in your project folder called "ssl" and ask for information to be added to your local certificate authority. Inside the ssl directory will be your config file and server.crt and server.key files.

Configuring puma

If you use puma to serve your app, you can use your new certificates by passing them when calling puma:

puma -C config/puma.rb -b 'ssl://127.0.0.1:<port>?key=./ssl/server.key&cert=./ssl/server.crt'

or in config/puma.rb:

ssl_bind '127.0.0.1', '<port>', {
  key: ./ssl/server.key,
  cert: ./ssl/server.crt
}

Customization

You can change the certificate directory using setup <directory>, for example, rails_dev_ssl setup lib/ssl to put the certificates inside your lib directory.

You can generate the server.crt.cnf file using the generate_config command.

You may want to add this directory to your project's .gitignore file.

Browser warnings

When you use your first self-signed certificate, your browser will warn you about an untrusted certificate authority. You'll need to trust the rootCA you created for your project.

Chrome and Firefox will ask you to add the certificate authority in the app. To use Safari, you'll need to add the CA to your keychain. You can do this with the add_ca_to_keychain command.

/etc/hosts

You may want to add an entry to your /etc/hosts file to include the CN you set in the generate_config step. This will allow you to visit the domain in your browser instead of using 127.0.0.1 (for example, https://localhost.ssl/path/to/your/app.)

Add this line to your /etc/hosts file:

127.0.0.1 localhost.ssl

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

Note that rake spec will remove any existing ssl directory in your current working directory.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/viamin/rails_dev_ssl.

License

The gem is available as open source under the terms of the MIT License.

About

A gem to make generating self-signed SSL certificates on your Mac easier

Resources

License

Stars

Watchers

Forks