2022-06-22 18:57:50 +02:00
< div align = "center" >
< img alt = "lego logo" src = "./docs/static/images/lego-logo.min.svg" >
< p > Automatic Certificates and HTTPS for everyone.< / p >
< / div >
# Lego
2018-05-31 02:03:08 +02:00
2019-03-08 20:47:06 +02:00
Let's Encrypt client and ACME library written in Go.
2015-06-13 04:45:04 +02:00
2023-05-28 10:36:37 +02:00
[![Go Reference ](https://pkg.go.dev/badge/github.com/go-acme/lego/v4.svg )](https://pkg.go.dev/github.com/go-acme/lego/v4)
2021-05-26 18:31:28 +02:00
[![Build Status ](https://github.com//go-acme/lego/workflows/Main/badge.svg?branch=master )](https://github.com//go-acme/lego/actions)
2019-03-11 20:26:14 +02:00
[![Docker Pulls ](https://img.shields.io/docker/pulls/goacme/lego.svg )](https://hub.docker.com/r/goacme/lego/)
2015-06-13 21:23:27 +02:00
2018-05-31 02:03:08 +02:00
## Features
2016-03-23 20:12:47 +02:00
2021-10-22 21:26:08 +02:00
- ACME v2 [RFC 8555 ](https://www.rfc-editor.org/rfc/rfc8555.html )
2023-05-28 10:31:08 +02:00
- Support [RFC 8737 ](https://www.rfc-editor.org/rfc/rfc8737.html ): TLS Application‑Layer Protocol Negotiation (ALPN) Challenge Extension
- Support [RFC 8738 ](https://www.rfc-editor.org/rfc/rfc8738.html ): certificates for IP addresses
2024-03-08 17:22:09 +02:00
- Support [draft-ietf-acme-ari-03 ](https://datatracker.ietf.org/doc/draft-ietf-acme-ari/ ): Renewal Information (ARI) Extension
2016-03-23 20:12:47 +02:00
- Register with CA
2016-02-12 03:08:36 +02:00
- Obtain certificates, both from scratch or with an existing CSR
2016-03-23 20:12:47 +02:00
- Renew certificates
- Revoke certificates
- Robust implementation of all ACME challenges
- HTTP (http-01)
- DNS (dns-01)
2018-06-14 01:20:56 +02:00
- TLS (tls-alpn-01)
2016-03-23 20:12:47 +02:00
- SAN certificate support
2023-05-15 11:59:38 +02:00
- [CNAME support ](https://letsencrypt.org/2019/10/09/onboarding-your-customers-with-lets-encrypt-and-acme.html ) by default
2019-03-11 21:00:39 +02:00
- Comes with multiple optional [DNS providers ](https://go-acme.github.io/lego/dns )
2019-03-11 17:54:35 +02:00
- [Custom challenge solvers ](https://go-acme.github.io/lego/usage/library/writing-a-challenge-solver/ )
2016-03-23 20:12:47 +02:00
- Certificate bundling
- OCSP helper function
2015-06-13 04:45:04 +02:00
2019-03-08 20:47:06 +02:00
## Installation
2015-10-17 23:02:52 +02:00
2019-03-11 17:54:35 +02:00
How to [install ](https://go-acme.github.io/lego/installation/ ).
2018-05-31 02:03:08 +02:00
2019-03-08 20:47:06 +02:00
## Usage
2018-05-31 02:03:08 +02:00
2019-03-11 17:54:35 +02:00
- as a [CLI ](https://go-acme.github.io/lego/usage/cli )
2019-03-19 17:50:05 +02:00
- as a [library ](https://go-acme.github.io/lego/usage/library )
2019-03-08 20:47:06 +02:00
## Documentation
2019-03-11 17:54:35 +02:00
Documentation is hosted live at https://go-acme.github.io/lego/.
2019-03-08 20:47:06 +02:00
## DNS providers
2019-03-11 17:54:35 +02:00
Detailed documentation is available [here ](https://go-acme.github.io/lego/dns ).
2019-03-08 20:47:06 +02:00
2020-03-09 10:43:27 +02:00
<!-- START DNS PROVIDERS LIST -->
2024-10-26 03:49:06 +02:00
< table > < tr >
< 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 >
< 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/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/arvancloud/" > ArvanCloud< / a > < / td >
< 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 >
< / 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/bindman/" > Bindman< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/bluecat/" > Bluecat< / a > < / td >
< / tr > < tr >
2024-11-07 00:17:52 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/brandit/" > Brandit (deprecated)< / a > < / td >
2024-10-26 03:49:06 +02:00
< 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 >
< td > < a href = "https://go-acme.github.io/lego/dns/civo/" > Civo< / a > < / td >
< / tr > < tr >
< 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 >
< td > < a href = "https://go-acme.github.io/lego/dns/cloudns/" > ClouDNS< / a > < / td >
< / tr > < tr >
2024-11-07 00:58:56 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/cloudxns/" > CloudXNS (Deprecated)< / a > < / td >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/conoha/" > ConoHa< / a > < / td >
< 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 >
< / tr > < tr >
< 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/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 >
< / tr > < tr >
< td > < a href = "https://go-acme.github.io/lego/dns/digitalocean/" > Digital Ocean< / a > < / td >
< 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/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/dynu/" > Dynu< / a > < / td >
< / tr > < tr >
< td > < a href = "https://go-acme.github.io/lego/dns/easydns/" > EasyDNS< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/efficientip/" > Efficient IP< / a > < / td >
< 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 >
< / tr > < tr >
< 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/freemyip/" > freemyip.com< / 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/glesys/" > Glesys< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/godaddy/" > Go Daddy< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/gcloud/" > Google Cloud< / a > < / td >
< / tr > < tr >
< 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/hetzner/" > Hetzner< / a > < / td >
< 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/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/ipv64/" > IPv64< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/iwantmyname/" > iwantmyname< / 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/liara/" > Liara< / a > < / td >
< 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 >
< / tr > < tr >
< 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 >
< 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 >
< / tr > < tr >
< td > < a href = "https://go-acme.github.io/lego/dns/manual/" > Manual< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/metaname/" > Metaname< / 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/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 >
< td > < a href = "https://go-acme.github.io/lego/dns/namecheap/" > Namecheap< / a > < / td >
< / tr > < tr >
< 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/netcup/" > Netcup< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/netlify/" > Netlify< / a > < / td >
< / tr > < tr >
< 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 >
< 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 >
< / tr > < tr >
< td > < a href = "https://go-acme.github.io/lego/dns/ns1/" > NS1< / a > < / td >
< 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 >
< / tr > < tr >
< td > < a href = "https://go-acme.github.io/lego/dns/plesk/" > plesk.com< / a > < / td >
< 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 >
< / 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 >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/regfish/" > Regfish< / a > < / td >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/rfc2136/" > RFC2136< / a > < / td >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/rimuhosting/" > RimuHosting< / a > < / td >
2024-10-26 03:49:06 +02:00
< 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 >
< td > < a href = "https://go-acme.github.io/lego/dns/selectel/" > Selectel< / a > < / td >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/selectelv2/" > Selectel v2< / a > < / td >
2024-10-26 03:49:06 +02:00
< 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 >
< td > < a href = "https://go-acme.github.io/lego/dns/shellrent/" > Shellrent< / a > < / td >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/simply/" > Simply.com< / a > < / td >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/sonic/" > Sonic< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/stackpath/" > Stackpath< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/tencentcloud/" > Tencent Cloud DNS< / a > < / td >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/timewebcloud/" > Timeweb Cloud< / a > < / td >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/transip/" > TransIP< / a > < / td >
< 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 >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/variomedia/" > Variomedia< / a > < / td >
2024-10-26 03:49:06 +02:00
< 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 >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/vinyldns/" > VinylDNS< / a > < / td >
2024-10-26 03:49:06 +02:00
< 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 >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/vultr/" > Vultr< / a > < / td >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/webnames/" > Webnames< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/websupport/" > Websupport< / a > < / td >
< td > < a href = "https://go-acme.github.io/lego/dns/wedos/" > WEDOS< / a > < / td >
< / tr > < tr >
2024-11-05 02:14:51 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/yandex360/" > Yandex 360< / a > < / td >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/yandexcloud/" > Yandex Cloud< / a > < / td >
< 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 >
2024-11-05 02:14:51 +02:00
< / tr > < tr >
2024-10-26 03:49:06 +02:00
< td > < a href = "https://go-acme.github.io/lego/dns/zonomi/" > Zonomi< / a > < / td >
2024-11-05 02:14:51 +02:00
< td > < / td >
< td > < / td >
< td > < / td >
2024-10-26 03:49:06 +02:00
< / tr > < / table >
2020-03-09 10:43:27 +02:00
<!-- END DNS PROVIDERS LIST -->
2021-06-08 17:26:21 +02:00
If your DNS provider is not supported, please open an [issue ](https://github.com/go-acme/lego/issues/new?assignees=&labels=enhancement%2C+new-provider&template=new_dns_provider.md ).