All Projects → substrakt → Letsencrypt Heroku

substrakt / Letsencrypt Heroku

Licence: mit
Make any Heroku application secure in just a couple of minutes.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Letsencrypt Heroku

Django Heroku
A Django library for Heroku apps.
Stars: ✭ 428 (-19.25%)
Mutual labels:  heroku
V2hero
All Free . Deploy V2Ray to Heroku . v2ray学习参考
Stars: ✭ 449 (-15.28%)
Mutual labels:  heroku
Nginx Le
Nginx with automatic let's encrypt (docker image)
Stars: ✭ 475 (-10.38%)
Mutual labels:  ssl-certificates
Meantorrent
meanTorrent - MEAN.JS BitTorrent Private Tracker - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, A BitTorrent Private Tracker CMS with Multilingual, and IRC announce support, CloudFlare support. Demo at:
Stars: ✭ 438 (-17.36%)
Mutual labels:  cloudflare
React Starter Kit
React Starter Kit — front-end starter kit using React, Relay, GraphQL, and JAM stack architecture
Stars: ✭ 21,060 (+3873.58%)
Mutual labels:  cloudflare
Encrypted Dns
Configuration profiles for DNS HTTPS and DNS over TLS for iOS 14 and MacOS Big Sur
Stars: ✭ 455 (-14.15%)
Mutual labels:  cloudflare
Tilex
Today I Learned
Stars: ✭ 418 (-21.13%)
Mutual labels:  heroku
Onedrive Index Cloudflare Worker
DEPRECATED: Please use https://github.com/spencerwooo/onedrive-cf-index instead
Stars: ✭ 485 (-8.49%)
Mutual labels:  cloudflare
Dokku
A docker-powered PaaS that helps you build and manage the lifecycle of applications
Stars: ✭ 22,155 (+4080.19%)
Mutual labels:  heroku
Pigallery2
A directory-first photo gallery website, witch rich UI, optimised for running on low resource servers (especially on raspberry pi)
Stars: ✭ 470 (-11.32%)
Mutual labels:  heroku
Haikunator
Heroku-like random name generator.
Stars: ✭ 440 (-16.98%)
Mutual labels:  heroku
Nginx Autoinstall
Compile Nginx from source with custom modules on Debian and Ubuntu
Stars: ✭ 443 (-16.42%)
Mutual labels:  cloudflare
Scoold
A Stack Overflow clone for teams (self-hosted)
Stars: ✭ 463 (-12.64%)
Mutual labels:  heroku
Edge Sql
Cloudflare Workers providing a SQL API
Stars: ✭ 429 (-19.06%)
Mutual labels:  cloudflare
Heroku Accounts
Helps use multiple accounts on Heroku.
Stars: ✭ 482 (-9.06%)
Mutual labels:  heroku
Ssl Proxy
🔒 Simple zero-config SSL reverse proxy with real autogenerated certificates (LetsEncrypt, self-signed, provided)
Stars: ✭ 427 (-19.43%)
Mutual labels:  ssl-certificates
Phoenix Chat Example
💬 A Step-by-Step Beginners Tutorial for Building, Testing & Deploying a Chat app in Phoenix 1.5.5 🚀
Stars: ✭ 452 (-14.72%)
Mutual labels:  heroku
Passwordpusher
🔐 PasswordPusher is an application to securely communicate passwords over the web. Passwords automatically expire after a certain number of views and/or time has passed.
Stars: ✭ 484 (-8.68%)
Mutual labels:  heroku
Localdots
HTTPS domains for localhost. 🏠
Stars: ✭ 486 (-8.3%)
Mutual labels:  ssl-certificates
Docker Cloudflare Ddns
A small amd64/ARM/ARM64 Docker image that allows you to use CloudFlare as a DDNS / DynDNS Provider.
Stars: ✭ 467 (-11.89%)
Mutual labels:  cloudflare

letsencrypt-heroku

Deprecated: This project is no longer maintained. You should use Automated Certificate Management from Heroku instead.


Code Climate Build Status

This is the master branch. It contains all the latest changes and should not be used in production unless you know what you're doing. While master is supposed to be in a usable state, it may (and probably will) contain breaking changes from the last release.

Current stable release is 3.1.1

Let's make everything secure.

With the advent of free SSL and Heroku finally offering free SSL endpoints, it's about time we made it ridiculously easy to get an SSL cert for any Heroku application and keep it up to date.

We wrote a blog post about it here

Substrakt Logo

Created by Substrakt.

What it does

  1. Provides an API to generate SSL certificates.
  2. Generates SSL certificates using DNS records to validate ownership.

Limitations

  1. DNS must be managed by CloudFlare.

Installation

You can install letsencrypt-heroku either directly on to Heroku, use Docker Compose or download the code and deploy it yourself anywhere you can run a Rack app.

First off, you'll need a Heroku auth token.

  1. heroku plugins:install heroku-cli-oauth
  2. heroku authorizations:create -d "letsencrypt-heroku"
  3. Save the token from this. We'll use it later.

Installation on Heroku

  1. Deploy automatically to Heroku using this button: Deploy
  2. Input all the required parameters as asked for by the Heroku setup wizard. This includes the heroku token from above.
  3. This will set up the application and all dependencies automatically including a free instance of Heroku Redis. (Redis is used to process background jobs amongst other things.)
  4. On the command line run heroku config:get AUTH_TOKEN. The response is the secret token. Every request made to the API must have the query parameter auth_token=TOKEN added to it. You'll receive a 403 error if you forget to do this.

Run using Docker Compose

This application comes with a docker-compose.yml file. Assuming you have Docker installed, you can run docker-compose up and you'll be up and running immediately.

Installation elsewhere

You can deploy this application anywhere you can run a Rack app. (Azure, Heroku, AWS, local, etc.)

  1. Download the repo git clone https://github.com/substrakt/letsencrypt-heroku.git
  2. Install Redis. (brew install redis)
  3. Install foreman (gem install foreman)
  4. Copy .env.sample to .env using cp .env.sample .env. The .env file is read when the application starts and should contain all of the required environment variables. One of these is the token generated earlier for Heroku. DO NOT COMMIT THIS FILE TO SOURCE CONTROL
  5. Run the application locally using foreman start.
  6. Deploy however you want to!

Usage

  1. Hit the following endpoint:
POST /certificate_request

{
	"auth_token": "CHOSEN AUTH TOKEN",
	"domains": ["www.substrakt.com", "substrakt.com"],
	"zone": "CLOUDFLARE DOMAIN ZONE NAME (NOT ID)",
	"heroku_app_name": "NAME OF HEROKU APP",
	"cloudflare_api_key": "API KEY OF CLOUDFLARE ACCOUNT",
	"cloudflare_email": "CLOUDFLARE EMAIL ADDRESS",
	"heroku_oauth_token": "HEROKU OAUTH TOKEN"
}

This will start the process in the background and output something like this:

{
  "status": "queued",
  "uuid": "a97fc5e2fce7bc60a96aa4c3e4907152",
  "url": "http://0.0.0.0/certificate_request/a97fc5e2fce7bc60a96aa4c3e4907152?auth_token=testtesttest"
}

That API URL will give you updates as to the certificate generation process. You should poll this to check how it's going. Redis is used as a store for status updates as well as the backend for Resque.

The output looks something like this:

{"status":"finished","message":"Generated certificate"}

That's it.

Contributing

Pull requests and issues are very much welcome at this early stage.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].