go-acme / lego
Let's Encrypt/ACME client and library written in Go
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing go-acme/lego in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
PreviewLego
ACME client and library for Let's Encrypt and other ACME CAs written in Go.
lego is an independent, free, and open-source project, if you value it, consider supporting it! ❤️
Everybody thinks that the others will donate, but in the end, nobody does.
So if you think that lego is worth it, please consider donating.
Features
- ACME v2 RFC 8555
- Support RFC 8737: TLS Application‑Layer Protocol Negotiation (ALPN) Challenge Extension
- Support RFC 8738: certificates for IP addresses
- Support RFC 9773: Renewal Information (ARI) Extension
- Support draft-ietf-acme-profiles-00: Profiles Extension
- Comes with about 180 DNS providers
- Register with CA
- Obtain certificates, both from scratch or with an existing CSR
- Renew certificates
- Revoke certificates
- Robust implementation of ACME challenges:
- HTTP (http-01)
- DNS (dns-01)
- TLS (tls-alpn-01)
- SAN certificate support
- CNAME support by default
- Custom challenge solvers
- Certificate bundling
- OCSP helper function
Installation
How to install.
Usage
Documentation
Documentation is hosted live at https://go-acme.github.io/lego/.
DNS providers
Detailed documentation is available here.
If your DNS provider is not supported, please open an issue.
<!-- START DNS PROVIDERS LIST --> <table><tr> <td><a href="https://go-acme.github.io/lego/dns/com35/">35.com/三五互联</a></td> <td><a href="https://go-acme.github.io/lego/dns/active24/">Active24</a></td> <td><a href="https://go-acme.github.io/lego/dns/edgedns/">Akamai EdgeDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/alidns/">Alibaba Cloud DNS</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/aliesa/">AlibabaCloud ESA</a></td> <td><a href="https://go-acme.github.io/lego/dns/allinkl/">all-inkl</a></td> <td><a href="https://go-acme.github.io/lego/dns/alwaysdata/">Alwaysdata</a></td> <td><a href="https://go-acme.github.io/lego/dns/lightsail/">Amazon Lightsail</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/route53/">Amazon Route 53</a></td> <td><a href="https://go-acme.github.io/lego/dns/anexia/">Anexia CloudDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/artfiles/">ArtFiles</a></td> <td><a href="https://go-acme.github.io/lego/dns/arvancloud/">ArvanCloud</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/auroradns/">Aurora DNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/autodns/">Autodns</a></td> <td><a href="https://go-acme.github.io/lego/dns/axelname/">Axelname</a></td> <td><a href="https://go-acme.github.io/lego/dns/azion/">Azion</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/azure/">Azure (deprecated)</a></td> <td><a href="https://go-acme.github.io/lego/dns/azuredns/">Azure DNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/baiducloud/">Baidu Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/beget/">Beget.com</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/binarylane/">Binary Lane</a></td> <td><a href="https://go-acme.github.io/lego/dns/bindman/">Bindman</a></td> <td><a href="https://go-acme.github.io/lego/dns/bluecat/">Bluecat</a></td> <td><a href="https://go-acme.github.io/lego/dns/bluecatv2/">Bluecat v2</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/bookmyname/">BookMyName</a></td> <td><a href="https://go-acme.github.io/lego/dns/brandit/">Brandit (deprecated)</a></td> <td><a href="https://go-acme.github.io/lego/dns/bunny/">Bunny</a></td> <td><a href="https://go-acme.github.io/lego/dns/checkdomain/">Checkdomain</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/civo/">Civo</a></td> <td><a href="https://go-acme.github.io/lego/dns/cloudru/">Cloud.ru</a></td> <td><a href="https://go-acme.github.io/lego/dns/clouddns/">CloudDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/cloudflare/">Cloudflare</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/cloudns/">ClouDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/cloudxns/">CloudXNS (Deprecated)</a></td> <td><a href="https://go-acme.github.io/lego/dns/conoha/">ConoHa v2</a></td> <td><a href="https://go-acme.github.io/lego/dns/conohav3/">ConoHa v3</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/constellix/">Constellix</a></td> <td><a href="https://go-acme.github.io/lego/dns/corenetworks/">Core-Networks</a></td> <td><a href="https://go-acme.github.io/lego/dns/cpanel/">CPanel/WHM</a></td> <td><a href="https://go-acme.github.io/lego/dns/ddnss/">DDnss (DynDNS Service)</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/derak/">Derak Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/desec/">deSEC.io</a></td> <td><a href="https://go-acme.github.io/lego/dns/designate/">Designate DNSaaS for Openstack</a></td> <td><a href="https://go-acme.github.io/lego/dns/digitalocean/">Digital Ocean</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/directadmin/">DirectAdmin</a></td> <td><a href="https://go-acme.github.io/lego/dns/dnsmadeeasy/">DNS Made Easy</a></td> <td><a href="https://go-acme.github.io/lego/dns/dnsexit/">DNSExit</a></td> <td><a href="https://go-acme.github.io/lego/dns/dnshomede/">dnsHome.de</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/dnsimple/">DNSimple</a></td> <td><a href="https://go-acme.github.io/lego/dns/dnspod/">DNSPod (deprecated)</a></td> <td><a href="https://go-acme.github.io/lego/dns/dode/">Domain Offensive (do.de)</a></td> <td><a href="https://go-acme.github.io/lego/dns/domeneshop/">Domeneshop</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/dreamhost/">DreamHost</a></td> <td><a href="https://go-acme.github.io/lego/dns/duckdns/">Duck DNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/dyn/">Dyn</a></td> <td><a href="https://go-acme.github.io/lego/dns/dyndnsfree/">DynDnsFree.de</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/dynu/">Dynu</a></td> <td><a href="https://go-acme.github.io/lego/dns/easydns/">EasyDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/edgecenter/">EdgeCenter</a></td> <td><a href="https://go-acme.github.io/lego/dns/efficientip/">Efficient IP</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/epik/">Epik</a></td> <td><a href="https://go-acme.github.io/lego/dns/exoscale/">Exoscale</a></td> <td><a href="https://go-acme.github.io/lego/dns/exec/">External program</a></td> <td><a href="https://go-acme.github.io/lego/dns/f5xc/">F5 XC</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/freemyip/">freemyip.com</a></td> <td><a href="https://go-acme.github.io/lego/dns/namesurfer/">FusionLayer NameSurfer</a></td> <td><a href="https://go-acme.github.io/lego/dns/gcore/">G-Core</a></td> <td><a href="https://go-acme.github.io/lego/dns/gandi/">Gandi</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/gandiv5/">Gandi Live DNS (v5)</a></td> <td><a href="https://go-acme.github.io/lego/dns/gigahostno/">Gigahost.no</a></td> <td><a href="https://go-acme.github.io/lego/dns/glesys/">Glesys</a></td> <td><a href="https://go-acme.github.io/lego/dns/godaddy/">Go Daddy</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/gcloud/">Google Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/googledomains/">Google Domains</a></td> <td><a href="https://go-acme.github.io/lego/dns/gravity/">Gravity</a></td> <td><a href="https://go-acme.github.io/lego/dns/hetzner/">Hetzner</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/hostingde/">Hosting.de</a></td> <td><a href="https://go-acme.github.io/lego/dns/hostingnl/">Hosting.nl</a></td> <td><a href="https://go-acme.github.io/lego/dns/hostinger/">Hostinger</a></td> <td><a href="https://go-acme.github.io/lego/dns/hosttech/">Hosttech</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/httpreq/">HTTP request</a></td> <td><a href="https://go-acme.github.io/lego/dns/httpnet/">http.net</a></td> <td><a href="https://go-acme.github.io/lego/dns/huaweicloud/">Huawei Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/hurricane/">Hurricane Electric DNS</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/hyperone/">HyperOne</a></td> <td><a href="https://go-acme.github.io/lego/dns/ibmcloud/">IBM Cloud (SoftLayer)</a></td> <td><a href="https://go-acme.github.io/lego/dns/iijdpf/">IIJ DNS Platform Service</a></td> <td><a href="https://go-acme.github.io/lego/dns/infoblox/">Infoblox</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/infomaniak/">Infomaniak</a></td> <td><a href="https://go-acme.github.io/lego/dns/iij/">Internet Initiative Japan</a></td> <td><a href="https://go-acme.github.io/lego/dns/internetbs/">Internet.bs</a></td> <td><a href="https://go-acme.github.io/lego/dns/inwx/">INWX</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/ionos/">Ionos</a></td> <td><a href="https://go-acme.github.io/lego/dns/ionoscloud/">Ionos Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/ipv64/">IPv64</a></td> <td><a href="https://go-acme.github.io/lego/dns/ispconfig/">ISPConfig 3</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/ispconfigddns/">ISPConfig 3 - Dynamic DNS (DDNS) Module</a></td> <td><a href="https://go-acme.github.io/lego/dns/iwantmyname/">iwantmyname (Deprecated)</a></td> <td><a href="https://go-acme.github.io/lego/dns/jdcloud/">JD Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/joker/">Joker</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/acme-dns/">Joohoi's ACME-DNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/keyhelp/">KeyHelp</a></td> <td><a href="https://go-acme.github.io/lego/dns/leaseweb/">Leaseweb</a></td> <td><a href="https://go-acme.github.io/lego/dns/liara/">Liara</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/limacity/">Lima-City</a></td> <td><a href="https://go-acme.github.io/lego/dns/linode/">Linode (v4)</a></td> <td><a href="https://go-acme.github.io/lego/dns/liquidweb/">Liquid Web</a></td> <td><a href="https://go-acme.github.io/lego/dns/loopia/">Loopia</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/luadns/">LuaDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/mailinabox/">Mail-in-a-Box</a></td> <td><a href="https://go-acme.github.io/lego/dns/manageengine/">ManageEngine CloudDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/manual/">Manual</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/metaname/">Metaname</a></td> <td><a href="https://go-acme.github.io/lego/dns/metaregistrar/">Metaregistrar</a></td> <td><a href="https://go-acme.github.io/lego/dns/mijnhost/">mijn.host</a></td> <td><a href="https://go-acme.github.io/lego/dns/mittwald/">Mittwald</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/myaddr/">myaddr.{tools,dev,io}</a></td> <td><a href="https://go-acme.github.io/lego/dns/mydnsjp/">MyDNS.jp</a></td> <td><a href="https://go-acme.github.io/lego/dns/mythicbeasts/">MythicBeasts</a></td> <td><a href="https://go-acme.github.io/lego/dns/namedotcom/">Name.com</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/namecheap/">Namecheap</a></td> <td><a href="https://go-acme.github.io/lego/dns/namesilo/">Namesilo</a></td> <td><a href="https://go-acme.github.io/lego/dns/nearlyfreespeech/">NearlyFreeSpeech.NET</a></td> <td><a href="https://go-acme.github.io/lego/dns/neodigit/">Neodigit</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/netcup/">Netcup</a></td> <td><a href="https://go-acme.github.io/lego/dns/netlify/">Netlify</a></td> <td><a href="https://go-acme.github.io/lego/dns/nicmanager/">Nicmanager</a></td> <td><a href="https://go-acme.github.io/lego/dns/nifcloud/">NIFCloud</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/njalla/">Njalla</a></td> <td><a href="https://go-acme.github.io/lego/dns/nodion/">Nodion</a></td> <td><a href="https://go-acme.github.io/lego/dns/ns1/">NS1</a></td> <td><a href="https://go-acme.github.io/lego/dns/octenium/">Octenium</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/otc/">Open Telekom Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/oraclecloud/">Oracle Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/ovh/">OVH</a></td> <td><a href="https://go-acme.github.io/lego/dns/plesk/">plesk.com</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/porkbun/">Porkbun</a></td> <td><a href="https://go-acme.github.io/lego/dns/pdns/">PowerDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/rackspace/">Rackspace</a></td> <td><a href="https://go-acme.github.io/lego/dns/rainyun/">Rain Yun/雨云</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/rcodezero/">RcodeZero</a></td> <td><a href="https://go-acme.github.io/lego/dns/regru/">reg.ru</a></td> <td><a href="https://go-acme.github.io/lego/dns/regfish/">Regfish</a></td> <td><a href="https://go-acme.github.io/lego/dns/rfc2136/">RFC2136</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/rimuhosting/">RimuHosting</a></td> <td><a href="https://go-acme.github.io/lego/dns/nicru/">RU CENTER</a></td> <td><a href="https://go-acme.github.io/lego/dns/sakuracloud/">Sakura Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/scaleway/">Scaleway</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/selectel/">Selectel</a></td> <td><a href="https://go-acme.github.io/lego/dns/selectelv2/">Selectel v2</a></td> <td><a href="https://go-acme.github.io/lego/dns/selfhostde/">SelfHost.(de|eu)</a></td> <td><a href="https://go-acme.github.io/lego/dns/servercow/">Servercow</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/shellrent/">Shellrent</a></td> <td><a href="https://go-acme.github.io/lego/dns/simply/">Simply.com</a></td> <td><a href="https://go-acme.github.io/lego/dns/sonic/">Sonic</a></td> <td><a href="https://go-acme.github.io/lego/dns/spaceship/">Spaceship</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/stackpath/">Stackpath</a></td> <td><a href="https://go-acme.github.io/lego/dns/syse/">Syse</a></td> <td><a href="https://go-acme.github.io/lego/dns/technitium/">Technitium</a></td> <td><a href="https://go-acme.github.io/lego/dns/tencentcloud/">Tencent Cloud DNS</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/edgeone/">Tencent EdgeOne</a></td> <td><a href="https://go-acme.github.io/lego/dns/timewebcloud/">Timeweb Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/todaynic/">TodayNIC/时代互联</a></td> <td><a href="https://go-acme.github.io/lego/dns/transip/">TransIP</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/safedns/">UKFast SafeDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/ultradns/">Ultradns</a></td> <td><a href="https://go-acme.github.io/lego/dns/uniteddomains/">United-Domains</a></td> <td><a href="https://go-acme.github.io/lego/dns/variomedia/">Variomedia</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/vegadns/">VegaDNS</a></td> <td><a href="https://go-acme.github.io/lego/dns/vercel/">Vercel</a></td> <td><a href="https://go-acme.github.io/lego/dns/versio/">Versio.[nl|eu|uk]</a></td> <td><a href="https://go-acme.github.io/lego/dns/vinyldns/">VinylDNS</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/virtualname/">Virtualname</a></td> <td><a href="https://go-acme.github.io/lego/dns/vkcloud/">VK Cloud</a></td> <td><a href="https://go-acme.github.io/lego/dns/volcengine/">Volcano Engine/火山引擎</a></td> <td><a href="https://go-acme.github.io/lego/dns/vscale/">Vscale</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/vultr/">Vultr</a></td> <td><a href="https://go-acme.github.io/lego/dns/webnamesca/">webnames.ca</a></td> <td><a href="https://go-acme.github.io/lego/dns/webnames/">webnames.ru</a></td> <td><a href="https://go-acme.github.io/lego/dns/websupport/">Websupport</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/wedos/">WEDOS</a></td> <td><a href="https://go-acme.github.io/lego/dns/westcn/">West.cn/西部数码</a></td> <td><a href="https://go-acme.github.io/lego/dns/yandex360/">Yandex 360</a></td> <td><a href="https://go-acme.github.io/lego/dns/yandexcloud/">Yandex Cloud</a></td> </tr><tr> <td><a href="https://go-acme.github.io/lego/dns/yandex/">Yandex PDD</a></td> <td><a href="https://go-acme.github.io/lego/dns/zoneee/">Zone.ee</a></td> <td><a href="https://go-acme.github.io/lego/dns/zoneedit/">ZoneEdit</a></td> <td><a href="https://go-acme.github.io/lego/dns/zonomi/">Zonomi</a></td> </tr></table> <!-- END DNS PROVIDERS LIST -->If your DNS provider is not supported, please open an issue.