Mid-level Track Roadmap

DevOps: SSL automation

This course explains how HTTPS works for a Rails application behind a proxy and how its certificates are obtained and renewed automatically. It starts with what assume_ssl, force_ssl and the /up health check exclusion do. It then covers certificates, the chain of trust and the ACME challenge types used by Let's Encrypt. Later lessons treat renewal timing, rate limits, forwarding headers, HSTS, mixed content, wildcards versus SAN lists, and certificate transparency. The last lesson applies all of it to this application with kamal-proxy, Cloudflare and an expiry check.

What you'll learn

  • ✓What assume_ssl and force_ssl do behind a TLS-terminating proxy
  • ✓How certificates, Subject Alternative Names and the intermediate chain are validated
  • ✓How ACME challenges and Let's Encrypt rate limits work
  • ✓When to renew and how to monitor the expiry of the served certificate
  • ✓How forwarding headers, HSTS and mixed content affect a Rails application
  • ✓When to choose a SAN list or a wildcard certificate
Free preview · Lesson 1 5 min read

What force_ssl actually does

This application already runs on HTTPS, and three lines in config/environments/production.rb are why:

Read the full lesson free →

Curriculum

7 lessons
Type to start searching...