  lego logo
  
Automatic Certificates and HTTPS for everyone.

# Lego

[ACME](https://www.rfc-editor.org/rfc/rfc8555.html) client and library for Let's Encrypt and other ACME CAs written in Go.

[![Go Reference](https://pkg.go.dev/badge/github.com/go-acme/lego/v4.svg)](https://pkg.go.dev/github.com/go-acme/lego/v4)
[![Build Status](https://github.com//go-acme/lego/workflows/Main/badge.svg?branch=master)](https://github.com//go-acme/lego/actions)
[![Docker Pulls](https://img.shields.io/docker/pulls/goacme/lego.svg)](https://hub.docker.com/r/goacme/lego/)

lego is an independent, free, and open-source project, if you value it, consider [supporting it](https://donate.ldez.dev)! ❤️

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](https://donate.ldez.dev).

## Features

- ACME v2 [RFC 8555](https://www.rfc-editor.org/rfc/rfc8555.html)
  - 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
  - Support [RFC 9773](https://www.rfc-editor.org/rfc/rfc9773.html): Renewal Information (ARI) Extension
  - Support [draft-ietf-acme-profiles-00](https://datatracker.ietf.org/doc/draft-ietf-acme-profiles/): Profiles Extension
- Comes with about [180 DNS providers](https://go-acme.github.io/lego/dns)
- 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](https://letsencrypt.org/2019/10/09/onboarding-your-customers-with-lets-encrypt-and-acme.html) by default
- [Custom challenge solvers](https://go-acme.github.io/lego/usage/library/writing-a-challenge-solver/)
- Certificate bundling
- OCSP helper function

## Installation

How to [install](https://go-acme.github.io/lego/installation/).

## Usage

- as a [CLI](https://go-acme.github.io/lego/usage/cli)
- as a [library](https://go-acme.github.io/lego/usage/library)

## Documentation

Documentation is hosted live at https://go-acme.github.io/lego/.

## DNS providers

Detailed documentation is available [here](https://go-acme.github.io/lego/dns).

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.yml).

   1cloud.ru (https://go-acme.github.io/lego/dns/onecloudru/)
   35.com/三五互联 (https://go-acme.github.io/lego/dns/com35/)
   Active24 (https://go-acme.github.io/lego/dns/active24/)
   Alwaysdata (https://go-acme.github.io/lego/dns/alwaysdata/)

   Amazon Lightsail (https://go-acme.github.io/lego/dns/lightsail/)
   Amazon Route 53 (https://go-acme.github.io/lego/dns/route53/)
   Anexia CloudDNS (https://go-acme.github.io/lego/dns/anexia/)
   ANS SafeDNS (https://go-acme.github.io/lego/dns/safedns/)

   ArtFiles (https://go-acme.github.io/lego/dns/artfiles/)
   ArvanCloud (https://go-acme.github.io/lego/dns/arvancloud/)
   Autodns (https://go-acme.github.io/lego/dns/autodns/)
   Axelname (https://go-acme.github.io/lego/dns/axelname/)

   Beget.com (https://go-acme.github.io/lego/dns/beget/)
   Binary Lane (https://go-acme.github.io/lego/dns/binarylane/)
   Bluecat (https://go-acme.github.io/lego/dns/bluecat/)
   Bluecat v2 (https://go-acme.github.io/lego/dns/bluecatv2/)

   BookMyName (https://go-acme.github.io/lego/dns/bookmyname/)
   Brandit (deprecated) (https://go-acme.github.io/lego/dns/brandit/)
   Checkdomain (https://go-acme.github.io/lego/dns/checkdomain/)
   Cloud.ru (https://go-acme.github.io/lego/dns/cloudru/)

   CloudDNS (https://go-acme.github.io/lego/dns/clouddns/)
   ClouDNS (https://go-acme.github.io/lego/dns/cloudns/)
   CloudXNS (Deprecated) (https://go-acme.github.io/lego/dns/cloudxns/)
   ConoHa v2 (https://go-acme.github.io/lego/dns/conoha/)

   ConoHa v3 (https://go-acme.github.io/lego/dns/conohav3/)
   Constellix (https://go-acme.github.io/lego/dns/constellix/)
   Core-Networks (https://go-acme.github.io/lego/dns/corenetworks/)
   CPanel/WHM (https://go-acme.github.io/lego/dns/cpanel/)

   Czechia (https://go-acme.github.io/lego/dns/czechia/)
   DDnss (DynDNS Service) (https://go-acme.github.io/lego/dns/ddnss/)
   Derak Cloud (https://go-acme.github.io/lego/dns/derak/)
   deSEC.io (https://go-acme.github.io/lego/dns/desec/)

   Digital Ocean (https://go-acme.github.io/lego/dns/digitalocean/)
   DirectAdmin (https://go-acme.github.io/lego/dns/directadmin/)
   DNS Made Easy (https://go-acme.github.io/lego/dns/dnsmadeeasy/)
   DNS Update (RFC2136) (https://go-acme.github.io/lego/dns/rfc2136/)

   DNSExit (https://go-acme.github.io/lego/dns/dnsexit/)
   dnsHome.de (https://go-acme.github.io/lego/dns/dnshomede/)
   Domain Offensive (do.de) (https://go-acme.github.io/lego/dns/dode/)
   Domeneshop (https://go-acme.github.io/lego/dns/domeneshop/)

   DreamHost (https://go-acme.github.io/lego/dns/dreamhost/)
   Duck DNS (https://go-acme.github.io/lego/dns/duckdns/)
   Dyn (https://go-acme.github.io/lego/dns/dyn/)
   DynDnsFree.de (https://go-acme.github.io/lego/dns/dyndnsfree/)

   Dynu (https://go-acme.github.io/lego/dns/dynu/)
   EasyDNS (https://go-acme.github.io/lego/dns/easydns/)
   EdgeCenter (https://go-acme.github.io/lego/dns/edgecenter/)
   Efficient IP (https://go-acme.github.io/lego/dns/efficientip/)

   Epik (https://go-acme.github.io/lego/dns/epik/)
   EuroDNS (https://go-acme.github.io/lego/dns/eurodns/)
   Excedo (https://go-acme.github.io/lego/dns/excedo/)
   External program (https://go-acme.github.io/lego/dns/exec/)

   F5 XC (https://go-acme.github.io/lego/dns/f5xc/)
   FusionLayer NameSurfer (https://go-acme.github.io/lego/dns/namesurfer/)
   G-Core (https://go-acme.github.io/lego/dns/gcore/)
   Gandi (https://go-acme.github.io/lego/dns/gandi/)

   Gandi Live DNS (v5) (https://go-acme.github.io/lego/dns/gandiv5/)
   Gigahost.no (https://go-acme.github.io/lego/dns/gigahostno/)
   Glesys (https://go-acme.github.io/lego/dns/glesys/)
   Go Daddy (https://go-acme.github.io/lego/dns/godaddy/)

   Google Cloud (https://go-acme.github.io/lego/dns/gcloud/)
   Google Domains (https://go-acme.github.io/lego/dns/googledomains/)
   Gravity (https://go-acme.github.io/lego/dns/gravity/)
   Hetzner (https://go-acme.github.io/lego/dns/hetzner/)

   Hosting.de (https://go-acme.github.io/lego/dns/hostingde/)
   Hosting.nl (https://go-acme.github.io/lego/dns/hostingnl/)
   Hostinger (https://go-acme.github.io/lego/dns/hostinger/)
   Hosttech (https://go-acme.github.io/lego/dns/hosttech/)

   HTTP request (https://go-acme.github.io/lego/dns/httpreq/)
   http.net (https://go-acme.github.io/lego/dns/httpnet/)
   Hurricane Electric DNS (https://go-acme.github.io/lego/dns/hurricane/)
   HyperOne (https://go-acme.github.io/lego/dns/hyperone/)

   Infomaniak (https://go-acme.github.io/lego/dns/infomaniak/)
   Internet.bs (https://go-acme.github.io/lego/dns/internetbs/)
   INWX (https://go-acme.github.io/lego/dns/inwx/)
   Ionos (https://go-acme.github.io/lego/dns/ionos/)

   Ionos Cloud (https://go-acme.github.io/lego/dns/ionoscloud/)
   IPv64 (https://go-acme.github.io/lego/dns/ipv64/)
   ISPConfig 3 (https://go-acme.github.io/lego/dns/ispconfig/)
   ISPConfig 3 - Dynamic DNS (DDNS) Module (https://go-acme.github.io/lego/dns/ispconfigddns/)

   iwantmyname (Deprecated) (https://go-acme.github.io/lego/dns/iwantmyname/)
   Joker (https://go-acme.github.io/lego/dns/joker/)
   KeyHelp (https://go-acme.github.io/lego/dns/keyhelp/)
   Leaseweb (https://go-acme.github.io/lego/dns/leaseweb/)

   Liara (https://go-acme.github.io/lego/dns/liara/)
   Lima-City (https://go-acme.github.io/lego/dns/limacity/)
   Loopia (https://go-acme.github.io/lego/dns/loopia/)
   LuaDNS (https://go-acme.github.io/lego/dns/luadns/)

   ManageEngine CloudDNS (https://go-acme.github.io/lego/dns/manageengine/)
   Manual (https://go-acme.github.io/lego/dns/manual/)
   Metaregistrar (https://go-acme.github.io/lego/dns/metaregistrar/)
   mijn.host (https://go-acme.github.io/lego/dns/mijnhost/)

   Mittwald (https://go-acme.github.io/lego/dns/mittwald/)
   myaddr.{tools,dev,io} (https://go-acme.github.io/lego/dns/myaddr/)
   MyDNS.jp (https://go-acme.github.io/lego/dns/mydnsjp/)
   MythicBeasts (https://go-acme.github.io/lego/dns/mythicbeasts/)

   Namecheap (https://go-acme.github.io/lego/dns/namecheap/)
   NearlyFreeSpeech.NET (https://go-acme.github.io/lego/dns/nearlyfreespeech/)
   Neodigit (https://go-acme.github.io/lego/dns/neodigit/)
   Netcup (https://go-acme.github.io/lego/dns/netcup/)

   Netlify (https://go-acme.github.io/lego/dns/netlify/)
   Netnod (https://go-acme.github.io/lego/dns/netnod/)
   Nicmanager (https://go-acme.github.io/lego/dns/nicmanager/)
   NIFCloud (https://go-acme.github.io/lego/dns/nifcloud/)

   Njalla (https://go-acme.github.io/lego/dns/njalla/)
   Octenium (https://go-acme.github.io/lego/dns/octenium/)
   Online.net (https://go-acme.github.io/lego/dns/onlinenet/)
   Open Telekom Cloud (https://go-acme.github.io/lego/dns/otc/)

   OVH (https://go-acme.github.io/lego/dns/ovh/)
   plesk.com (https://go-acme.github.io/lego/dns/plesk/)
   PowerDNS (https://go-acme.github.io/lego/dns/pdns/)
   Rackspace (https://go-acme.github.io/lego/dns/rackspace/)

   Rain Yun/雨云 (https://go-acme.github.io/lego/dns/rainyun/)
   RcodeZero (https://go-acme.github.io/lego/dns/rcodezero/)
   reg.ru (https://go-acme.github.io/lego/dns/regru/)
   RimuHosting (https://go-acme.github.io/lego/dns/rimuhosting/)

   RU CENTER (https://go-acme.github.io/lego/dns/nicru/)
   Selectel (https://go-acme.github.io/lego/dns/selectel/)
   SelfHost.(de|eu) (https://go-acme.github.io/lego/dns/selfhostde/)
   Servercow (https://go-acme.github.io/lego/dns/servercow/)

   Shellrent (https://go-acme.github.io/lego/dns/shellrent/)
   Simply.com (https://go-acme.github.io/lego/dns/simply/)
   Sonic (https://go-acme.github.io/lego/dns/sonic/)
   Spaceship (https://go-acme.github.io/lego/dns/spaceship/)

   Stackpath (https://go-acme.github.io/lego/dns/stackpath/)
   Syse (https://go-acme.github.io/lego/dns/syse/)
   Technitium (https://go-acme.github.io/lego/dns/technitium/)
   Timeweb Cloud (https://go-acme.github.io/lego/dns/timewebcloud/)

   TodayNIC/时代互联 (https://go-acme.github.io/lego/dns/todaynic/)
   United-Domains (https://go-acme.github.io/lego/dns/uniteddomains/)
   Variomedia (https://go-acme.github.io/lego/dns/variomedia/)
   Vercel (https://go-acme.github.io/lego/dns/vercel/)

   Versio.[nl|eu|uk] (https://go-acme.github.io/lego/dns/versio/)
   Virtualname (https://go-acme.github.io/lego/dns/virtualname/)
   Vscale (https://go-acme.github.io/lego/dns/vscale/)
   webnames.ca (https://go-acme.github.io/lego/dns/webnamesca/)

   webnames.ru (https://go-acme.github.io/lego/dns/webnames/)
   Websupport (https://go-acme.github.io/lego/dns/websupport/)
   WEDOS (https://go-acme.github.io/lego/dns/wedos/)
   West.cn/西部数码 (https://go-acme.github.io/lego/dns/westcn/)

   Yandex 360 (https://go-acme.github.io/lego/dns/yandex360/)
   Yandex PDD (https://go-acme.github.io/lego/dns/yandex/)
   Zone.ee (https://go-acme.github.io/lego/dns/zoneee/)
   ZoneEdit (https://go-acme.github.io/lego/dns/zoneedit/)

   Zonomi (https://go-acme.github.io/lego/dns/zonomi/)

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.yml).
