Freedom251 › Certificate Management Software
lego

What lego is
lego is a free, open-source ACME client and Go library for obtaining, renewing, and revoking certificates. It supports wildcard and SAN certificates and validation through DNS-01, HTTP-01, TLS-ALPN-01, and DNS-PERSIST-01 challenges. Multiple ACME servers are supported, including Let’s Encrypt and ZeroSSL. The project says it supports more than 200 DNS providers, with listed integrations including Cloudflare, Amazon Route 53, Google Cloud DNS, and Azure DNS. CNAME is supported by default. Users can run lego from the command line or use it as a Go library. DNS provider credentials and configuration are supplied through environment variables, with support for file references and dotenv files. Installation options include prebuilt binaries, Docker, package managers, and building from source. The maintainers maintain the AUR and Snap packages; other listed packages are maintained by the community. The project lists support for ACME RFC 8555 and certificate validation and renewal extensions. It is licensed under MIT. Installing from source requires Go 1.25 or later.
Who it suits
lego suits developers and operators who need to obtain, renew, or revoke ACME certificates through a command-line tool or Go library. It offers DNS provider integrations and several installation routes.
What it does well
- Obtains, renews, and revokes wildcard and SAN certificates
- Supports multiple ACME challenge methods
- Works with more than 200 DNS providers
- Available as a CLI and Go library
- Free and open source under MIT
What to know first
- Building from source requires Go 1.25 or later
- Most listed packages are community maintained
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free and open-source | Independent project; no paid plans stated | Free |
As go-acme.github.io lists them, read 11 Oct 2026. The maker's own page has the final word.
Getting started
- Choose a documented installation route: a prebuilt binary, Docker, a package manager, or building from source.
- If building from source, use Go 1.25 or later.
- Set DNS provider credentials and configuration through environment variables, using file references or dotenv files if needed.
- Run lego from the command line or use it as a Go library.
lego is a free, open-source ACME client that also exposes a Go library for certificate automation. It is best suited to developers and infrastructure operators managing certificates in scripts, services, or self-hosted systems. Its broad challenge, DNS-provider, and CA support is compelling, while graphical administration is not its focus.
Overview
lego covers the operational certificate lifecycle rather than just first-time issuance: it can obtain, renew, and revoke certificates, including wildcard and SAN certificates. Automatic renewal, deployment automation, and revocation workflows make it appropriate for recurring production processes where certificates must be kept current without manual requests.
The project is independent, free, and open source under the MIT license. You can run the command-line client directly or embed the Go library in an application. That combination suits teams standardizing certificate handling inside their own tooling, but users who want a hosted dashboard or a guided graphical workflow should look elsewhere.
Key features
Validation options include DNS-01, HTTP-01, TLS-ALPN-01, and DNS-PERSIST-01. This range lets an operator match the challenge to the network and domain setup: DNS validation can support wildcard certificates, while HTTP or TLS validation can fit environments where DNS automation is less convenient. Choosing and maintaining the correct method remains an implementation responsibility.
lego works with multiple ACME servers, including Let’s Encrypt and ZeroSSL, so deployments are not tied to one certificate authority. It supports ACME RFC 8555 and several certificate-validation and renewal extensions, providing a standards-based foundation for automated operations.
More than 200 DNS-provider integrations are supported. Cloudflare, Amazon Route 53, Google Cloud DNS, and Azure DNS are among the listed integrations, and CNAME is supported by default. Credentials and provider settings are supplied through environment variables, including values loaded from files or dotenv files. That approach fits CI, containers, and scripts, but credential storage and environment configuration must be managed carefully by the operator.
Support is organized through GitHub issues and discussions. The project distributes binaries for operating systems and architectures, a Docker image, and installation guidance for package managers. The maintainers maintain the AUR and Snap packages; other package-manager offerings are community maintained.
Pricing
| Plan | Price | What it means |
|---|---|---|
| Free and open-source | free | Independent project with no paid plans stated; includes the full open-source client and library. |
There is no paid tier, seat charge, trial period, or renewal fee. The zero-cost plan is therefore suitable for individual operators, development teams, and organizations comfortable running and maintaining their own certificate automation. It does not provide a separate commercial service tier for readers seeking vendor-managed administration.
Platforms
lego supports API use, Linux, macOS, and self-hosted deployments. Prebuilt binaries, Docker, package-manager instructions, and source installation give several deployment routes. Building from source requires Go 1.25 or later, so older Go environments should use a provided binary, container, or package instead.
Who it's for
Choose lego if you need programmable certificate issuance and renewal across varied DNS providers, ACME servers, and validation methods. It is particularly well matched to Go developers, platform teams, and self-hosted infrastructure that already uses environment-driven configuration and automated deployment.
It is less suitable for administrators who expect a visual control panel, managed certificate service, or a turnkey credential workflow. Those users may prefer a product built around web administration rather than a CLI and library.
Pros and cons
Pros
- Broad automation coverage: issuance, renewal, deployment, and revocation address the full certificate lifecycle.
- Flexible validation: DNS-01, HTTP-01, TLS-ALPN-01, and DNS-PERSIST-01 cover diverse network designs.
- Wide integration choice: more than 200 DNS providers, including major cloud services, reduce provider lock-in.
- Developer-friendly delivery: a Go library, CLI, Docker image, binaries, and package options support custom tooling.
- No licensing cost: the MIT-licensed project has a single free plan and no paid restrictions stated.
Cons
- Operator-managed configuration: credentials and provider settings live in environment-based workflows, leaving security and upkeep to your team.
- Source-build prerequisite: compiling from source requires Go 1.25 or later.
- No graphical service tier: teams wanting hosted administration or a visual certificate inventory need another product.
- Mixed package maintenance: only AUR and Snap packages are maintained by the project; other package-manager packages rely on their communities.
Alternatives
Certify The Web is a better fit when you want a freemium product with a free evaluation and web and Windows availability alongside API, Linux, macOS, and self-hosted options.
acme.sh is the simpler choice if you specifically want a free GPLv3 shell-script ACME client.
Certbot is an alternative free, open-source ACME client made by the Electronic Frontier Foundation.
Let's Encrypt is appropriate when your priority is free Domain Validation certificates from that certificate authority rather than a multi-CA client.
EJBCA suits readers seeking a free community PKI edition for learning, testing, and prototyping.
OpenXPKI offers a free community edition with a functional code base, Debian packages, documentation, and mailing-list support.
GeoTrust is the paid-oriented alternative for SSL certificates with AutoInstall SSL and a separate SSL Monitor plan.
Qualys External Attack Surface Management is aimed at external attack-surface management rather than a standalone ACME client.
For a wider comparison, see Certificate Management Software.
Verdict
lego is a strong recommendation for developers and infrastructure teams that want free, standards-based certificate automation in a CLI or Go application. Its main reason to choose it is the combination of four challenge methods, multiple ACME servers, and more than 200 DNS integrations. Look elsewhere if you need a hosted dashboard, commercial support tier, or a less operator-driven credential and package-maintenance model.
Verdict
lego provides certificate operations through both a command-line client and a Go library, with multiple ACME servers and DNS providers. Source installation requires Go 1.25 or later.
Questions
How much does lego cost?
The listed plan is Free and open-source at no cost. The project describes itself as independent, free, and open source.
Which certificate operations and types does it support?
lego can obtain, renew, and revoke certificates, including wildcard and SAN certificates.
Which validation challenges and ACME servers are supported?
Challenges include DNS-01, HTTP-01, TLS-ALPN-01, and DNS-PERSIST-01. Supported ACME servers include Let’s Encrypt and ZeroSSL.
Which DNS providers can I use?
The project lists more than 200 DNS providers, including Cloudflare, Amazon Route 53, Google Cloud DNS, and Azure DNS. CNAME support is enabled by default.
How can I install and use lego?
Installation options include binaries, Docker, package managers, and building from source. It can be run as a command-line tool or used as a Go library; source installation requires Go 1.25 or later.
What license does lego use?
The GitHub repository lists the MIT license.
Facts from lego's own pages
- ACME servers
- It supports multiple ACME servers, including Let’s Encrypt and ZeroSSL. · go-acme.github.io, 11 Oct 2026
- Certificate authorities
- It supports multiple ACME servers, including Let’s Encrypt and ZeroSSL. · go-acme.github.io, 11 Oct 2026
- Certificate management
- It can obtain, renew, and revoke certificates. · go-acme.github.io, 11 Oct 2026
- Certificate operations
- It can obtain, renew, and revoke certificates, including wildcard and SAN certificates. · go-acme.github.io, 11 Oct 2026
- Certificate types
- It supports wildcard and SAN certificates. · go-acme.github.io, 11 Oct 2026
- Challenge methods
- Supported validation challenges include DNS-01, HTTP-01, TLS-ALPN-01, and DNS-PERSIST-01. · go-acme.github.io, 11 Oct 2026
- Challenges
- It supports DNS-01, HTTP-01, TLS-ALPN-01, and DNS-PERSIST-01 challenges. · go-acme.github.io, 11 Oct 2026
- CNAME
- CNAME is supported by default. · go-acme.github.io, 11 Oct 2026
- Credential configuration
- DNS provider credentials and configuration are passed through environment variables, including values loaded from files or dotenv files. · go-acme.github.io, 11 Oct 2026
- Distribution
- The project provides binaries for operating systems and architectures, a Docker image, and installation instructions for several package managers. · go-acme.github.io, 11 Oct 2026
- DNS credentials
- DNS provider credentials and configuration are passed through environment variables, with support for file references and dotenv files. · go-acme.github.io, 11 Oct 2026
- DNS integrations
- The project says it supports more than 200 DNS providers, with a provider list in its documentation. · go-acme.github.io, 11 Oct 2026
- DNS providers
- The project says it comes with support for more than 200 DNS providers. · go-acme.github.io, 11 Oct 2026
- Go library
- lego can be used as a Go library as well as a command-line client. · github.com, 11 Oct 2026
- Install options
- The project documents prebuilt binaries, Docker, package managers, and installation from source. · go-acme.github.io, 11 Oct 2026
- License
- The GitHub repository lists the project under the MIT license. · github.com, 11 Oct 2026
- License and cost
- The project describes itself as independent, free, and open source. · go-acme.github.io, 11 Oct 2026
- Package maintenance
- The maintainers maintain the AUR and Snap packages; other listed packages are community maintained. · go-acme.github.io, 11 Oct 2026
- Provider integrations
- Listed DNS integrations include Cloudflare, Amazon Route 53, Google Cloud DNS, and Azure DNS. · go-acme.github.io, 11 Oct 2026
- Purpose
- lego is an ACME client and library written in Go for obtaining and renewing certificates. · go-acme.github.io, 11 Oct 2026
- Security standard
- The project lists support for ACME RFC 8555 and several certificate validation and renewal extensions. · go-acme.github.io, 11 Oct 2026
- Source requirement
- Installing from source requires Go 1.25 or later. · go-acme.github.io, 11 Oct 2026
- Support
- The project links to GitHub issues and discussions for help and community participation. · go-acme.github.io, 11 Oct 2026
- Ways to use
- lego can be used as a command-line interface or as a Go library. · github.com, 11 Oct 2026
Where lego stands on Freedom251
- Certificate Management Software#9 of 31
