This gem provides a convenient API for generating per-user self-signed root certificates.
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
.
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.
Please see the project releases for all releases.
- Add
localhost:purge
to delete all certificates. - Add
localhost:install
to install the issuer certificate in the local trust store.
- Falcon — Uses
Localhost::Authority
to provide HTTP/2 with minimal configuration. - Puma — Supports
Localhost::Authority
to provide self-signed HTTP for local development.
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create new Pull Request.
In order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.