Project

localhost

0.1
A long-lived project that still receives updates
Manage a local certificate authority for self-signed localhost development servers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Localhost

This gem provides a convenient API for generating per-user self-signed root certificates.

Development Status

Motivation

HTTP/2 requires SSL in web browsers. If you want to use HTTP/2 for development (and you should), you need to start using URLs like https://localhost:8080. In most cases, this requires adding a self-signed certificate to your certificate store (e.g. Keychain on macOS), and storing the private key for the web-server to use.

I wanted to provide a server-agnostic way of doing this, primarily because I think it makes sense to minimise the amount of junky self-signed keys you add to your certificate store for localhost.

Usage

Please see the project documentation for more details.

  • Getting Started - This guide explains how to use localhost for provisioning local TLS certificates for development.

  • Browser Configuration - This guide explains how to configure your local browser in order to avoid warnings about insecure self-signed certificates.

  • Example Server - This guide demonstrates how to use Localhost::Authority to implement a simple HTTPS client & server.

Contributing

We welcome contributions to this project.

  1. Fork it.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request.

Developer Certificate of Origin

This project uses the Developer Certificate of Origin. All contributors to this project must agree to this document to have their contributions accepted.

Contributor Covenant

This project is governed by the Contributor Covenant. All contributors and participants agree to abide by its terms.

See Also

  • Falcon — Uses Localhost::Authority to provide HTTP/2 with minimal configuration.
  • Puma — Supports Localhost::Authority to provide self-signed HTTP for local development.