Run a local ACME certificate authority for testing your ACME client without hitting real Let's Encrypt rate limits.
Study how a production-grade, security-critical certificate authority is architected across separate components in Go.
Test that your ACME client correctly handles edge cases like domain validation failures and certificate renewal.
Requires Docker and Docker Compose, the full stack has many interconnected components designed for a production certificate authority, not a simple side project.
Boulder is the actual software that powers Let's Encrypt, the free certificate authority that issues the SSL/TLS certificates used by a large portion of websites on the internet. When a website shows the padlock in your browser, it has a certificate proving its identity. Let's Encrypt issues those certificates for free, and Boulder is the system that handles all the logic behind that process. A certificate authority needs to verify that you actually own a domain before it hands you a certificate for it. Boulder implements a standard protocol called ACME (Automatic Certificate Management Environment) that defines how this verification and certificate issuance process works. The same protocol is used by tools like Certbot to automatically renew certificates without human intervention. Internally, Boulder is broken into several components that each handle a specific piece of the process: a web-facing layer that receives requests, a registration authority that manages accounts, a validation authority that confirms domain ownership, a certificate authority that signs the actual certificates, and a storage layer that keeps records. These components communicate with each other internally, and separating them is a deliberate security design choice, since not every part needs direct access to the internet. For developers who want to run Boulder locally, the project uses Docker and Docker Compose to set up all its dependencies in a contained environment. There is also a smaller, faster version called Pebble that is designed for testing ACME clients without running the full Boulder stack. The README includes instructions for running tests and for connecting standard ACME clients like Certbot to a local Boulder instance. Boulder is written in Go and released under the Mozilla Public License 2.0.
← letsencrypt on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.