mirror of
				https://github.com/go-acme/lego.git
				synced 2025-10-31 08:27:38 +02:00 
			
		
		
		
	Automatic generation of documentation (#818)
* generate a detailed CLI help * generate a documentation site * new readme
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							235ab6653f
						
					
				
				
					commit
					62fea05e21
				
			| @@ -5,3 +5,4 @@ lego.exe | ||||
| .vscode/ | ||||
| dist/ | ||||
| builds/ | ||||
| docs/ | ||||
|   | ||||
							
								
								
									
										23
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -1,12 +1,14 @@ | ||||
| language: go | ||||
|  | ||||
| go: | ||||
|   - 1.10.x | ||||
|   - 1.12.x | ||||
|   - 1.x | ||||
|  | ||||
| services: | ||||
|   - memcached | ||||
|  | ||||
| go_import_path: github.com/xenolf/lego | ||||
|  | ||||
| addons: | ||||
|   hosts: | ||||
|   # for e2e tests | ||||
| @@ -33,6 +35,10 @@ before_install: | ||||
|   - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b $GOPATH/bin v1.15.0 | ||||
|   - golangci-lint --version | ||||
|  | ||||
|   # Hugo - documentation | ||||
|   - wget -O /tmp/hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.54.0/hugo_0.54.0_Linux-64bit.deb | ||||
|   - sudo dpkg -i /tmp/hugo.deb | ||||
|  | ||||
| install: | ||||
|   - echo "TRAVIS_GO_VERSION=$TRAVIS_GO_VERSION" | ||||
|   - dep status -v | ||||
| @@ -40,6 +46,13 @@ install: | ||||
| after_success: | ||||
|   - make clean | ||||
|  | ||||
| before_deploy: | ||||
|   - > | ||||
|     if ! [ "$BEFORE_DEPLOY_RUN" ]; then | ||||
|       export BEFORE_DEPLOY_RUN=1; | ||||
|       make docs-build | ||||
|     fi | ||||
|  | ||||
| deploy: | ||||
|   - provider: script | ||||
|     skip_cleanup: true | ||||
| @@ -57,3 +70,11 @@ deploy: | ||||
|     on: | ||||
|       tags: true | ||||
|       condition: $TRAVIS_GO_VERSION =~ ^1\.x$ | ||||
|  | ||||
|   - provider: pages | ||||
|     local_dir: docs/public | ||||
|     skip_cleanup: true | ||||
|     github_token: ${GITHUB_TOKEN} | ||||
|     on: | ||||
|       tags: true | ||||
|       condition: $TRAVIS_GO_VERSION =~ ^1\.x$ | ||||
|   | ||||
| @@ -73,62 +73,3 @@ git push -u origin my-feature | ||||
|  | ||||
| ## create a pull request on Github ## | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## DNS Providers: API references | ||||
|  | ||||
| | DNS provider              | Code           | Documentation                                                                                                | Go client                                                         | | ||||
| |---------------------------|----------------|--------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| | ||||
| | Acme DNS                  | `acmedns`      | [documentation](https://github.com/joohoi/acme-dns#api)                                                      | [Go client](https://github.com/cpu/goacmedns)                     | | ||||
| | Alibaba Cloud             | `alidns`       | [documentation](https://www.alibabacloud.com/help/doc-detail/42875.htm)                                      | [Go client](https://github.com/aliyun/alibaba-cloud-sdk-go)       | | ||||
| | Aurora DNS                | `auroradns`    | [documentation](https://libcloud.readthedocs.io/en/latest/dns/drivers/auroradns.html#api-docs)               | [Go client](https://github.com/nrdcg/auroradns)          | | ||||
| | Azure                     | `azure`        | [documentation](https://docs.microsoft.com/en-us/go/azure/)                                                  | [Go client](https://github.com/Azure/azure-sdk-for-go)            | | ||||
| | Bluecat                   | `bluecat`      | ?                                                                                                            | -                                                                 | | ||||
| | Cloudflare                | `cloudflare`   | [documentation](https://api.cloudflare.com/)                                                                 | [Go client](https://github.com/cloudflare/cloudflare-go)          | | ||||
| | ClouDNS                   | `cloudns`      | [documentation](https://www.cloudns.net/wiki/article/42/)                                                    | -                                                                 | | ||||
| | CloudXNS                  | `cloudxns`     | [documentation](https://www.cloudxns.net/Public/Doc/CloudXNS_api2.0_doc_zh-cn.zip)                           | -                                                                 | | ||||
| | ConoHa                    | `conoha`       | [documentation](https://www.conoha.jp/docs/)                                                                 | -                                                                 | | ||||
| | Openstack Designate       | `designate`    | [documentation](https://docs.openstack.org/designate/latest/)                                                | [Go client](https://godoc.org/github.com/gophercloud/gophercloud/openstack/dns/v2) | | ||||
| | Digital Ocean             | `digitalocean` | [documentation](https://developers.digitalocean.com/documentation/v2/#domain-records)                        | -                                                                 | | ||||
| | DNSimple                  | `dnsimple`     | [documentation](https://developer.dnsimple.com/v2/)                                                          | [Go client](https://github.com/dnsimple/dnsimple-go)              | | ||||
| | DNS Made Easy             | `dnsmadeeasy`  | [documentation](https://api-docs.dnsmadeeasy.com/)                                                           | -                                                                 | | ||||
| | DNSPod                    | `dnspod`       | [documentation](https://www.dnspod.cn/docs/index.html)                                                       | [Go client](https://github.com/decker502/dnspod-go)               | | ||||
| | DreamHost                 | `dreamhost`    | [documentation](https://help.dreamhost.com/hc/en-us/articles/217560167-API_overview)                         | -                                                                 | | ||||
| | Duck DNS                  | `duckdns`      | [documentation](https://www.duckdns.org/spec.jsp)                                                            | -                                                                 | | ||||
| | Dyn                       | `dyn`          | [documentation](https://help.dyn.com/rest/)                                                                  | -                                                                 | | ||||
| | exec                      | `exec`         | -                                                                                                            | -                                                                 | | ||||
| | Exoscale                  | `exoscale`     | [documentation](https://community.exoscale.com/documentation/dns/api/)                                       | [Go client](https://github.com/exoscale/egoscale)                 | | ||||
| | FastDNS                   | `fastdns`      | [documentation](https://developer.akamai.com/api/web_performance/fast_dns_record_management/v1.html)         | [Go client](https://github.com/akamai/AkamaiOPEN-edgegrid-golang) | | ||||
| | Gandi                     | `gandi`        | [documentation](http://doc.rpc.gandi.net/index.html)                                                         | -                                                                 | | ||||
| | Gandi v5                  | `gandiv5`      | [documentation](http://doc.livedns.gandi.net)                                                                | -                                                                 | | ||||
| | Google Cloud              | `gcloud`       | ?                                                                                                            | [Go client](https://github.com/googleapis/google-api-go-client)   | | ||||
| | Glesys                    | `glesys`       | [documentation](https://github.com/GleSYS/API/wiki/API-Documentation)                                        | -                                                                 | | ||||
| | Go Daddy                  | `godaddy`      | [documentation](https://developer.godaddy.com/doc/endpoint/domains)                                          | -                                                                 | | ||||
| | hosting.de                | `hostingde`    | [documentation](https://www.hosting.de/api/#dns)                                                             | -                                                                 | | ||||
| | Internet Initiative Japan | `iij`          | [documentation](http://manual.iij.jp/p2/pubapi/)                                                             | [Go client](https://github.com/iij/doapi)                         | | ||||
| | INWX                      | `inwx`         | [documentation](https://www.inwx.de/en/help/apidoc)                                                          | [Go client](https://github.com/nrdcg/goinwx)                 |  | ||||
| | Lightsail                 | `lightsail`    | ?                                                                                                            | [Go client](https://github.com/aws/aws-sdk-go/aws)                | | ||||
| | Linode (deprecated)       | `linode`       | [documentation](https://www.linode.com/api/dns)                                                              | [Go client](https://github.com/timewasted/linode)                 | | ||||
| | Linodev4                  | `linodev4`     | [documentation](https://developers.linode.com/api/v4)                                                        | [Go client](https://github.com/linode/linodego)                   | | ||||
| | Namecheap                 | `namecheap`    | [documentation](https://www.namecheap.com/support/api/methods.aspx)                                          | -                                                                 | | ||||
| | Name.com                  | `namedotcom`   | [documentation](https://www.name.com/api-docs/DNS)                                                           | [Go client](https://github.com/namedotcom/go)                     | | ||||
| | manual                    | `manual`       | -                                                                                                            | -                                                                 | | ||||
| | MyDNS.jp                  | `mydnsjp`      | [documentation](https://www.mydns.jp/?MENU=030)                                                              | -                                                                 | | ||||
| | Netcup                    | `netcup`       | [documentation](https://www.netcup-wiki.de/wiki/DNS_API)                                                     | -                                                                 | | ||||
| | NIFCloud                  | `nifcloud`     | [documentation](https://mbaas.nifcloud.com/doc/current/rest/common/format.html)                              | -                                                                 | | ||||
| | NS1                       | `ns1`          | [documentation](https://ns1.com/api)                                                                         | [Go client](https://github.com/ns1/ns1-go)                        | | ||||
| | Open Telekom Cloud        | `otc`          | [documentation](https://docs.otc.t-systems.com/en-us/dns/index.html)                                         | -                                                                 | | ||||
| | Oracle Cloud              | `oraclecloud`  | [documentation](https://docs.cloud.oracle.com/iaas/Content/DNS/Concepts/dnszonemanagement.htm)               | [Go Client](https://github.com/oracle/oci-go-sdk)                 | | ||||
| | OVH                       | `ovh`          | [documentation](https://eu.api.ovh.com/)                                                                     | [Go client](https://github.com/ovh/go-ovh)                        | | ||||
| | PowerDNS                  | `pdns`         | [documentation](https://doc.powerdns.com/md/httpapi/README/)                                                 | -                                                                 | | ||||
| | Rackspace                 | `rackspace`    | [documentation](https://developer.rackspace.com/docs/cloud-dns/v1/)                                          | -                                                                 | | ||||
| | RFC2136                   | `rfc2136`      | [documentation](https://tools.ietf.org/html/rfc2136)                                                         | -                                                                 | | ||||
| | Route 53                  | `route53`      | [documentation](https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html) | [Go client](https://github.com/aws/aws-sdk-go/aws)                | | ||||
| | Sakura Cloud              | `sakuracloud`  | [documentation](https://developer.sakura.ad.jp/cloud/api/1.1/)                                               | [Go client](https://github.com/sacloud/libsacloud)                | | ||||
| | Selectel                  | `selectel`     | [documentation](https://kb.selectel.com/23136054.html)                                                       | -                                                                 | | ||||
| | Stackpath                 | `stackpath`    | [documentation](https://developer.stackpath.com/en/api/dns/#tag/Zone)                                        | -                                                                 | | ||||
| | TransIP                   | `transip`      | [documentation](https://api.transip.nl/docs/transip.nl/package-Transip.html)                                 | [Go client](https://github.com/transip/gotransip)                 | | ||||
| | VegaDNS                   | `vegadns`      | [documentation](https://github.com/shupp/VegaDNS-API)                                                        | [Go client](https://github.com/OpenDNS/vegadns2client)            | | ||||
| | Vultr                     | `vultr`        | [documentation](https://www.vultr.com/api/#dns)                                                              | [Go client](https://github.com/JamesClonk/vultr)                  | | ||||
| | Vscale                    | `vscale`       | [documentation](https://developers.vscale.io/documentation/api/v1/#api-Domains_Records)                      | -                                                                 | | ||||
| | Zone.ee                   | `zone`         | [documentation](https://api.zone.eu/v2)                                                                      | -                                                                 | | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM golang:alpine3.8 as builder | ||||
| FROM golang:alpine3.9 as builder | ||||
|  | ||||
| RUN apk --update upgrade \ | ||||
| && apk --no-cache --no-progress add make git \ | ||||
| @@ -8,7 +8,7 @@ WORKDIR /go/src/github.com/xenolf/lego | ||||
| COPY . . | ||||
| RUN make build | ||||
|  | ||||
| FROM alpine:3.8 | ||||
| FROM alpine:3.9 | ||||
| RUN apk update && apk add --no-cache --virtual ca-certificates | ||||
| COPY --from=builder /go/src/github.com/xenolf/lego/dist/lego /usr/bin/lego | ||||
| ENTRYPOINT [ "/usr/bin/lego" ] | ||||
|   | ||||
							
								
								
									
										9
									
								
								Gopkg.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										9
									
								
								Gopkg.lock
									
									
									
										generated
									
									
									
								
							| @@ -38,6 +38,14 @@ | ||||
|   revision = "39013ecb48eaf6ced3f4e3e1d95515140ce6b3cf" | ||||
|   version = "v10.15.2" | ||||
|  | ||||
| [[projects]] | ||||
|   digest = "1:5d72bbcc9c8667b11c3dc3cbe681c5a6f71e5096744c0bf7726ab5c6425d5dc4" | ||||
|   name = "github.com/BurntSushi/toml" | ||||
|   packages = ["."] | ||||
|   pruneopts = "NUT" | ||||
|   revision = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005" | ||||
|   version = "v0.3.1" | ||||
|  | ||||
| [[projects]] | ||||
|   digest = "1:ed3fc9992df610d07c85c24e0b792268cc1ce226dd9bf8cb2e6ad9a377b35415" | ||||
|   name = "github.com/JamesClonk/vultr" | ||||
| @@ -671,6 +679,7 @@ | ||||
|     "github.com/Azure/go-autorest/autorest/azure", | ||||
|     "github.com/Azure/go-autorest/autorest/azure/auth", | ||||
|     "github.com/Azure/go-autorest/autorest/to", | ||||
|     "github.com/BurntSushi/toml", | ||||
|     "github.com/JamesClonk/vultr/lib", | ||||
|     "github.com/OpenDNS/vegadns2client", | ||||
|     "github.com/akamai/AkamaiOPEN-edgegrid-golang/configdns-v1", | ||||
|   | ||||
							
								
								
									
										23
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| .PHONY: clean checks test build image dependencies | ||||
| .PHONY: clean checks test build image dependencies e2e fmt | ||||
|  | ||||
| SRCS = $(shell git ls-files '*.go' | grep -v '^vendor/') | ||||
|  | ||||
| @@ -10,7 +10,7 @@ TAG_NAME := $(shell git tag -l --contains HEAD) | ||||
| SHA := $(shell git rev-parse HEAD) | ||||
| VERSION := $(if $(TAG_NAME),$(TAG_NAME),$(SHA)) | ||||
|  | ||||
| default: clean checks test build | ||||
| default: clean generate-dns checks test build | ||||
|  | ||||
| clean: | ||||
| 	rm -rf dist/ builds/ cover.out | ||||
| @@ -39,6 +39,7 @@ fmt: | ||||
| 	gofmt -s -l -w $(SRCS) | ||||
|  | ||||
| # Release helper | ||||
| .PHONY: patch minor major detach | ||||
|  | ||||
| patch: | ||||
| 	go run internal/release.go release -m patch | ||||
| @@ -51,3 +52,21 @@ major: | ||||
|  | ||||
| detach: | ||||
| 	go run internal/release.go detach | ||||
|  | ||||
| # Docs | ||||
| .PHONY: docs-build docs-serve docs-themes | ||||
|  | ||||
| docs-build: generate-dns | ||||
| 	@make -C ./docs hugo-build | ||||
|  | ||||
| docs-serve: generate-dns | ||||
| 	@make -C ./docs hugo | ||||
|  | ||||
| docs-themes: | ||||
| 	@make -C ./docs hugo-themes | ||||
|  | ||||
| # Generate DNS | ||||
| .PHONY: generate-dns | ||||
|  | ||||
| generate-dns: | ||||
| 	go generate ./... | ||||
|   | ||||
							
								
								
									
										313
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										313
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| # lego | ||||
|  | ||||
| Let's Encrypt client and ACME library written in Go | ||||
| Let's Encrypt client and ACME library written in Go. | ||||
|  | ||||
| [](https://godoc.org/github.com/xenolf/lego/acme) | ||||
| [](https://travis-ci.org/xenolf/lego) | ||||
| @@ -8,37 +8,6 @@ Let's Encrypt client and ACME library written in Go | ||||
| [](https://gitter.im/xenolf/lego) | ||||
| [](https://beerpay.io/xenolf/lego) | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| ### Binaries | ||||
|  | ||||
| To get the binary just download the latest release for your OS/Arch from [the release page](https://github.com/xenolf/lego/releases) and put the binary somewhere convenient. | ||||
| lego does not assume anything about the location you run it from. | ||||
|  | ||||
| ### From Docker | ||||
|  | ||||
| ```bash | ||||
| docker run xenolf/lego -h | ||||
| ``` | ||||
|  | ||||
| ### From package managers | ||||
|  | ||||
| - [ArchLinux (AUR)](https://aur.archlinux.org/packages/lego): | ||||
|  | ||||
| ```bash | ||||
| yay -S lego | ||||
| ``` | ||||
|  | ||||
| **Note**: only the package manager for Arch Linux is officially supported by the lego team. | ||||
|  | ||||
| ### From sources | ||||
|  | ||||
| To install from sources, just run: | ||||
|  | ||||
| ```bash | ||||
| go get -u github.com/xenolf/lego/cmd/lego | ||||
| ``` | ||||
|  | ||||
| ## Features | ||||
|  | ||||
| - Register with CA | ||||
| @@ -55,266 +24,38 @@ go get -u github.com/xenolf/lego/cmd/lego | ||||
| - Certificate bundling | ||||
| - OCSP helper function | ||||
|  | ||||
| Please keep in mind that CLI switches and APIs are still subject to change. | ||||
| lego introduced support for ACME v2 in [v1.0.0](https://github.com/xenolf/lego/releases/tag/v1.0.0). If you still need to utilize ACME v1, you can do so by using the [v0.5.0](https://github.com/xenolf/lego/releases/tag/v0.5.0) version. | ||||
|  | ||||
| When using the standard `--path` option, all certificates and account configurations are saved to a folder `.lego` in the current working directory. | ||||
| ## Installation | ||||
|  | ||||
| How to [install](https://xenolf.github.io/lego/installation/). | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```text | ||||
| NAME: | ||||
|    lego - Let's Encrypt client written in Go | ||||
| - as a [CLI](https://xenolf.github.io/lego/usage/cli) | ||||
| - as a [library](https://xenolf.github.io/lego/usage/lib) | ||||
|  | ||||
| USAGE: | ||||
|    lego [global options] command [command options] [arguments...] | ||||
| ## Documentation | ||||
|  | ||||
| COMMANDS: | ||||
|      run      Register an account, then create and install a certificate | ||||
|      revoke   Revoke a certificate | ||||
|      renew    Renew a certificate | ||||
|      dnshelp  Shows additional help for the --dns global option | ||||
|      list     Display certificates and accounts information. | ||||
|      help, h  Shows a list of commands or help for one command | ||||
| Documentation is hosted live at https://xenolf.github.io/lego/. | ||||
|  | ||||
| GLOBAL OPTIONS: | ||||
|    --domains value, -d value    Add a domain to the process. Can be specified multiple times. | ||||
|    --server value, -s value     CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client. (default: "https://acme-v02.api.letsencrypt.org/directory") | ||||
|    --accept-tos, -a             By setting this flag to true you indicate that you accept the current Let's Encrypt terms of service. | ||||
|    --email value, -m value      Email used for registration and recovery contact. | ||||
|    --csr value, -c value        Certificate signing request filename, if an external CSR is to be used. | ||||
|    --eab                        Use External Account Binding for account registration. Requires --kid and --hmac. | ||||
|    --kid value                  Key identifier from External CA. Used for External Account Binding. | ||||
|    --hmac value                 MAC key from External CA. Should be in Base64 URL Encoding without padding format. Used for External Account Binding. | ||||
|    --key-type value, -k value   Key type to use for private keys. Supported: rsa2048, rsa4096, rsa8192, ec256, ec384. (default: "rsa2048") | ||||
|    --filename value             (deprecated) Filename of the generated certificate. | ||||
|    --path value                 Directory to use for storing the data. (default: "./.lego") | ||||
|    --http                       Use the HTTP challenge to solve challenges. Can be mixed with other types of challenges. | ||||
|    --http.port value            Set the port and interface to use for HTTP based challenges to listen on.Supported: interface:port or :port. (default: ":80") | ||||
|    --http.webroot value         Set the webroot folder to use for HTTP based challenges to write directly in a file in .well-known/acme-challenge. | ||||
|    --http.memcached-host value  Set the memcached host(s) to use for HTTP based challenges. Challenges will be written to all specified hosts. | ||||
|    --tls                        Use the TLS challenge to solve challenges. Can be mixed with other types of challenges. | ||||
|    --tls.port value             Set the port and interface to use for TLS based challenges to listen on. Supported: interface:port or :port. (default: ":443") | ||||
|    --dns value                  Solve a DNS challenge using the specified provider. Can be mixed with other types of challenges. Run 'lego dnshelp' for help on usage. | ||||
|    --dns.disable-cp             By setting this flag to true, disables the need to wait the propagation of the TXT record to all authoritative name servers. | ||||
|    --dns.resolvers value        Set the resolvers to use for performing recursive DNS queries. Supported: host:port. The default is to use the system resolvers, or Google's DNS resolvers if the system's cannot be determined. | ||||
|    --http-timeout value         Set the HTTP timeout value to a specific value in seconds. (default: 0) | ||||
|    --dns-timeout value          Set the DNS timeout value to a specific value in seconds. Used only when performing authoritative name servers queries. (default: 10) | ||||
|    --pem                        Generate a .pem file by concatenating the .key and .crt files together. | ||||
|    --cert.timeout value         Set the certificate timeout value to a specific value in seconds. Only used when obtaining certificates. (default: 30) | ||||
|    --help, -h                   show help | ||||
|    --version, -v                print the version | ||||
| ``` | ||||
| ## DNS providers | ||||
|  | ||||
| ### Sudo | ||||
| Detailed documentation is available [here](https://xenolf.github.io/lego/dns). | ||||
|  | ||||
| The CLI does not require root permissions but needs to bind to port 80 and 443 for certain challenges. | ||||
| To run the CLI without sudo, you have four options: | ||||
|  | ||||
| - Use setcap 'cap_net_bind_service=+ep' /path/to/program | ||||
| - Pass the `--http.port` or/and the `--tls.port` option and specify a custom port to bind to. In this case you have to forward port 80/443 to these custom ports (see [Port Usage](#port-usage)). | ||||
| - Pass the `--http.webroot` option and specify the path to your webroot folder. In this case the challenge will be written in a file in `.well-known/acme-challenge/` inside your webroot. | ||||
| - Pass the `--dns` option and specify a DNS provider. | ||||
|  | ||||
| ### Port Usage | ||||
|  | ||||
| By default lego assumes it is able to bind to ports 80 and 443 to solve challenges. | ||||
| If this is not possible in your environment, you can use the `--http.port` and `--tls.port` options to instruct | ||||
| lego to listen on that interface:port for any incoming challenges. | ||||
|  | ||||
| If you are using this option, make sure you proxy all of the following traffic to these ports. | ||||
|  | ||||
| HTTP Port: | ||||
|  | ||||
| - All plaintext HTTP requests to port 80 which begin with a request path of `/.well-known/acme-challenge/` for the HTTP challenge. | ||||
|  | ||||
| TLS Port: | ||||
|  | ||||
| - All TLS handshakes on port 443 for the TLS-ALPN challenge. | ||||
|  | ||||
| This traffic redirection is only needed as long as lego solves challenges. As soon as you have received your certificates you can deactivate the forwarding. | ||||
|  | ||||
| ### CLI Example | ||||
|  | ||||
| Assumes the `lego` binary has permission to bind to ports 80 and 443. | ||||
| You can get a pre-built binary from the [releases](https://github.com/xenolf/lego/releases) page. | ||||
| If your environment does not allow you to bind to these ports, please read [Port Usage](#port-usage). | ||||
|  | ||||
| Obtain a certificate: | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --domains="example.com" --http run | ||||
| ``` | ||||
|  | ||||
| (Find your certificate in the `.lego` folder of current working directory.) | ||||
|  | ||||
| To renew the certificate: | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --domains="example.com" --http renew | ||||
| ``` | ||||
|  | ||||
| To renew the certificate only if it expires within 30 days | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --domains="example.com" --http renew --days 30 | ||||
| ``` | ||||
|  | ||||
| Obtain a certificate using the DNS challenge and AWS Route 53: | ||||
|  | ||||
| ```bash | ||||
| AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=my_id AWS_SECRET_ACCESS_KEY=my_key lego --email="foo@bar.com" --domains="example.com" --dns="route53" run | ||||
| ``` | ||||
|  | ||||
| Obtain a certificate given a certificate signing request (CSR) generated by something else: | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --http --csr=/path/to/csr.pem run | ||||
| ``` | ||||
|  | ||||
| (lego will infer the domains to be validated based on the contents of the CSR, so make sure the CSR's Common Name and optional SubjectAltNames are set correctly.) | ||||
|  | ||||
| lego defaults to communicating with the production Let's Encrypt ACME server. | ||||
| If you'd like to test something without issuing real certificates, consider using the staging endpoint instead: | ||||
|  | ||||
| ```bash | ||||
| lego --server=https://acme-staging-v02.api.letsencrypt.org/directory … | ||||
| ``` | ||||
|  | ||||
| ## ACME Library Usage | ||||
|  | ||||
| A valid, but bare-bones example use of the acme package: | ||||
|  | ||||
| ```go | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"crypto" | ||||
| 	"crypto/ecdsa" | ||||
| 	"crypto/elliptic" | ||||
| 	"crypto/rand" | ||||
| 	"fmt" | ||||
| 	"log" | ||||
|  | ||||
| 	"github.com/xenolf/lego/certcrypto" | ||||
| 	"github.com/xenolf/lego/certificate" | ||||
| 	"github.com/xenolf/lego/challenge/http01" | ||||
| 	"github.com/xenolf/lego/challenge/tlsalpn01" | ||||
| 	"github.com/xenolf/lego/lego" | ||||
| 	"github.com/xenolf/lego/registration" | ||||
| ) | ||||
|  | ||||
| // You'll need a user or account type that implements acme.User | ||||
| type MyUser struct { | ||||
| 	Email        string | ||||
| 	Registration *registration.Resource | ||||
| 	key          crypto.PrivateKey | ||||
| } | ||||
|  | ||||
| func (u *MyUser) GetEmail() string { | ||||
| 	return u.Email | ||||
| } | ||||
| func (u MyUser) GetRegistration() *registration.Resource { | ||||
| 	return u.Registration | ||||
| } | ||||
| func (u *MyUser) GetPrivateKey() crypto.PrivateKey { | ||||
| 	return u.key | ||||
| } | ||||
|  | ||||
| func main() { | ||||
|  | ||||
| 	// Create a user. New accounts need an email and private key to start. | ||||
| 	privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	myUser := MyUser{ | ||||
| 		Email: "you@yours.com", | ||||
| 		key:   privateKey, | ||||
| 	} | ||||
|  | ||||
| 	config := lego.NewConfig(&myUser) | ||||
|  | ||||
| 	// This CA URL is configured for a local dev instance of Boulder running in Docker in a VM. | ||||
| 	config.CADirURL = "http://192.168.99.100:4000/directory" | ||||
| 	config.Certificate.KeyType = certcrypto.RSA2048 | ||||
|  | ||||
| 	// A client facilitates communication with the CA server. | ||||
| 	client, err := lego.NewClient(config) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// We specify an http port of 5002 and an tls port of 5001 on all interfaces | ||||
| 	// because we aren't running as root and can't bind a listener to port 80 and 443 | ||||
| 	// (used later when we attempt to pass challenges). Keep in mind that you still | ||||
| 	// need to proxy challenge traffic to port 5002 and 5001. | ||||
| 	err = client.Challenge.SetHTTP01Provider(http01.NewProviderServer("", "5002")) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	err = client.Challenge.SetTLSALPN01Provider(tlsalpn01.NewProviderServer("", "5001")) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// New users will need to register | ||||
| 	reg, err := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true}) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	myUser.Registration = reg | ||||
|  | ||||
| 	request := certificate.ObtainRequest{ | ||||
| 		Domains: []string{"mydomain.com"}, | ||||
| 		Bundle:  true, | ||||
| 	} | ||||
| 	certificates, err := client.Certificate.Obtain(request) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// Each certificate comes back with the cert bytes, the bytes of the client's | ||||
| 	// private key, and a certificate URL. SAVE THESE TO DISK. | ||||
| 	fmt.Printf("%#v\n", certificates) | ||||
|  | ||||
| 	// ... all done. | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## DNS Challenge API Details | ||||
|  | ||||
| ### AWS Route 53 | ||||
|  | ||||
| The following AWS IAM policy document describes the permissions required for lego to complete the DNS challenge. | ||||
|  | ||||
| ```json | ||||
| { | ||||
|    "Version": "2012-10-17", | ||||
|    "Statement": [ | ||||
|        { | ||||
|            "Sid": "", | ||||
|            "Effect": "Allow", | ||||
|            "Action": [ | ||||
|                "route53:GetChange", | ||||
|                "route53:ChangeResourceRecordSets", | ||||
|                "route53:ListResourceRecordSets" | ||||
|            ], | ||||
|            "Resource": [ | ||||
|                "arn:aws:route53:::hostedzone/*", | ||||
|                "arn:aws:route53:::change/*" | ||||
|            ] | ||||
|        }, | ||||
|        { | ||||
|            "Sid": "", | ||||
|            "Effect": "Allow", | ||||
|            "Action": "route53:ListHostedZonesByName", | ||||
|            "Resource": "*" | ||||
|        } | ||||
|    ] | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## ACME v1 | ||||
|  | ||||
| lego introduced support for ACME v2 in [v1.0.0](https://github.com/xenolf/lego/releases/tag/v1.0.0), if you still need to utilize ACME v1, you can do so by using the [v0.5.0](https://github.com/xenolf/lego/releases/tag/v0.5.0) version. | ||||
| |                                                                |                                                                                |                                                                   |                                                                  | | ||||
| |----------------------------------------------------------------|--------------------------------------------------------------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| | ||||
| | [Alibaba Cloud DNS](https://xenolf.github.io/lego/dns/alidns/) | [Amazon Lightsail](https://xenolf.github.io/lego/dns/lightsail/)               | [Amazon Route 53](https://xenolf.github.io/lego/dns/route53/)     | [Aurora DNS](https://xenolf.github.io/lego/dns/auroradns/)       | | ||||
| | [Azure](https://xenolf.github.io/lego/dns/azure/)              | [Bluecat](https://xenolf.github.io/lego/dns/bluecat/)                          | [ClouDNS](https://xenolf.github.io/lego/dns/cloudns/)             | [CloudXNS](https://xenolf.github.io/lego/dns/cloudxns/)          | | ||||
| | [Cloudflare](https://xenolf.github.io/lego/dns/cloudflare/)    | [ConoHa](https://xenolf.github.io/lego/dns/conoha/)                            | [DNS Made Easy](https://xenolf.github.io/lego/dns/dnsmadeeasy/)   | [DNSPod](https://xenolf.github.io/lego/dns/dnspod/)              | | ||||
| | [DNSimple](https://xenolf.github.io/lego/dns/dnsimple/)        | [Designate DNSaaS for Openstack](https://xenolf.github.io/lego/dns/designate/) | [Digital Ocean](https://xenolf.github.io/lego/dns/digitalocean/)  | [DreamHost](https://xenolf.github.io/lego/dns/dreamhost/)        | | ||||
| | [Duck DNS](https://xenolf.github.io/lego/dns/duckdns/)         | [Dyn](https://xenolf.github.io/lego/dns/dyn/)                                  | [Exoscale](https://xenolf.github.io/lego/dns/exoscale/)           | [External program](https://xenolf.github.io/lego/dns/exec/)      | | ||||
| | [FastDNS](https://xenolf.github.io/lego/dns/fastdns/)          | [Gandi](https://xenolf.github.io/lego/dns/gandi/)                              | [Gandi Live DNS (v5)](https://xenolf.github.io/lego/dns/gandiv5/) | [Glesys](https://xenolf.github.io/lego/dns/glesys/)              | | ||||
| | [Go Daddy](https://xenolf.github.io/lego/dns/godaddy/)         | [Google Cloud](https://xenolf.github.io/lego/dns/gcloud/)                      | [HTTP request](https://xenolf.github.io/lego/dns/httpreq/)        | [Hosting.de](https://xenolf.github.io/lego/dns/hostingde/)       | | ||||
| | [INWX](https://xenolf.github.io/lego/dns/inwx/)                | [Internet Initiative Japan](https://xenolf.github.io/lego/dns/iij/)            | [Joohoi's ACME-DNS](https://xenolf.github.io/lego/dns/acme-dns)   | [Linode (deprecated)](https://xenolf.github.io/lego/dns/linode/) | | ||||
| | [Linode (v4)](https://xenolf.github.io/lego/dns/linodev4/)     | [Manual](https://xenolf.github.io/lego/dns/manual/)                            | [MyDNS.jp](https://xenolf.github.io/lego/dns/mydnsjp/)            | [NIFCloud](https://xenolf.github.io/lego/dns/nifcloud/)          | | ||||
| | [NS1](https://xenolf.github.io/lego/dns/ns1/)                  | [Name.com](https://xenolf.github.io/lego/dns/namedotcom/)                      | [Namecheap](https://xenolf.github.io/lego/dns/namecheap/)         | [Netcup](https://xenolf.github.io/lego/dns/netcup/)              | | ||||
| | [OVH](https://xenolf.github.io/lego/dns/ovh/)                  | [Open Telekom Cloud](https://xenolf.github.io/lego/dns/otc/)                   | [Oracle Cloud](https://xenolf.github.io/lego/dns/oraclecloud/)    | [PowerDNS](https://xenolf.github.io/lego/dns/pdns/)              | | ||||
| | [RFC2136](https://xenolf.github.io/lego/dns/rfc2136/)          | [Rackspace](https://xenolf.github.io/lego/dns/rackspace/)                      | [Sakura Cloud](https://xenolf.github.io/lego/dns/sakuracloud/)    | [Selectel](https://xenolf.github.io/lego/dns/selectel/)          | | ||||
| | [Stackpath](https://xenolf.github.io/lego/dns/stackpath/)      | [TransIP](https://xenolf.github.io/lego/dns/transip/)                          | [VegaDNS](https://xenolf.github.io/lego/dns/vegadns/)             | [Vscale](https://xenolf.github.io/lego/dns/vscale/)              | | ||||
| | [Vultr](https://xenolf.github.io/lego/dns/vultr/)              | [Zone.ee](https://xenolf.github.io/lego/dns/zoneee/)                           |                                                                   |                                                                  | | ||||
|   | ||||
| @@ -3,6 +3,7 @@ package cmd | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"strings" | ||||
| 	"text/tabwriter" | ||||
|  | ||||
| 	"github.com/urfave/cli" | ||||
| @@ -11,141 +12,37 @@ import ( | ||||
| func createDNSHelp() cli.Command { | ||||
| 	return cli.Command{ | ||||
| 		Name:   "dnshelp", | ||||
| 		Usage:  "Shows additional help for the --dns global option", | ||||
| 		Usage:  "Shows additional help for the '--dns' global option", | ||||
| 		Action: dnsHelp, | ||||
| 		Flags: []cli.Flag{ | ||||
| 			cli.StringFlag{ | ||||
| 				Name:  "code, c", | ||||
| 				Usage: fmt.Sprintf("DNS code: %s", allDNSCodes()), | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func dnsHelp(_ *cli.Context) error { | ||||
| 	fmt.Printf( | ||||
| 		`Credentials for DNS providers must be passed through environment variables. | ||||
| func dnsHelp(ctx *cli.Context) error { | ||||
| 	code := ctx.String("code") | ||||
| 	if code == "" { | ||||
| 		w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '\t', 0) | ||||
|  | ||||
| Here is an example bash command using the CloudFlare DNS provider: | ||||
| 		fmt.Fprintln(w, `Credentials for DNS providers must be passed through environment variables.`) | ||||
| 		fmt.Fprintln(w) | ||||
| 		fmt.Fprintln(w, `To display the documentation for a DNS providers:`) | ||||
| 		fmt.Fprintln(w) | ||||
| 		fmt.Fprintln(w, "\t$ lego dnshelp -c code") | ||||
| 		fmt.Fprintln(w) | ||||
| 		fmt.Fprintln(w, "All DNS codes:") | ||||
| 		fmt.Fprintf(w, "\t%s\n", allDNSCodes()) | ||||
| 		fmt.Fprintln(w) | ||||
| 		fmt.Fprintln(w, "More information: https://xenolf.github.io/lego/dns") | ||||
|  | ||||
|   $ CLOUDFLARE_EMAIL=foo@bar.com \ | ||||
|     CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \ | ||||
|     lego --dns cloudflare --domains www.example.com --email me@bar.com run | ||||
| 		return w.Flush() | ||||
| 	} | ||||
|  | ||||
| `) | ||||
|  | ||||
| 	w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '\t', 0) | ||||
| 	fmt.Fprintln(w, "Valid providers and their associated credential environment variables:") | ||||
| 	fmt.Fprintln(w) | ||||
| 	fmt.Fprintln(w, "\tacme-dns:\tACME_DNS_API_BASE, ACME_DNS_STORAGE_PATH") | ||||
| 	fmt.Fprintln(w, "\talidns:\tALICLOUD_ACCESS_KEY, ALICLOUD_SECRET_KEY") | ||||
| 	fmt.Fprintln(w, "\tauroradns:\tAURORA_USER_ID, AURORA_KEY, AURORA_ENDPOINT") | ||||
| 	fmt.Fprintln(w, "\tazure:\tAZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID, AZURE_TENANT_ID, AZURE_RESOURCE_GROUP") | ||||
| 	fmt.Fprintln(w, "\tbluecat:\tBLUECAT_SERVER_URL, BLUECAT_USER_NAME, BLUECAT_PASSWORD, BLUECAT_CONFIG_NAME, BLUECAT_DNS_VIEW") | ||||
| 	fmt.Fprintln(w, "\tcloudflare:\tCLOUDFLARE_EMAIL, CLOUDFLARE_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tcloudns:\tCLOUDNS_AUTH_ID, CLOUDNS_AUTH_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\tcloudxns:\tCLOUDXNS_API_KEY, CLOUDXNS_SECRET_KEY") | ||||
| 	fmt.Fprintln(w, "\tconoha:\tCONOHA_TENANT_ID, CONOHA_API_USERNAME, CONOHA_API_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\tdesignate:\tOS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME, OS_REGION_NAME") | ||||
| 	fmt.Fprintln(w, "\tdigitalocean:\tDO_AUTH_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tdnsimple:\tDNSIMPLE_EMAIL, DNSIMPLE_OAUTH_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tdnsmadeeasy:\tDNSMADEEASY_API_KEY, DNSMADEEASY_API_SECRET") | ||||
| 	fmt.Fprintln(w, "\tdnspod:\tDNSPOD_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tdreamhost:\tDREAMHOST_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tduckdns:\tDUCKDNS_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tdyn:\tDYN_CUSTOMER_NAME, DYN_USER_NAME, DYN_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\texec:\tEXEC_PATH, EXEC_MODE") | ||||
| 	fmt.Fprintln(w, "\texoscale:\tEXOSCALE_API_KEY, EXOSCALE_API_SECRET, EXOSCALE_ENDPOINT") | ||||
| 	fmt.Fprintln(w, "\tfastdns:\tAKAMAI_HOST, AKAMAI_CLIENT_TOKEN, AKAMAI_CLIENT_SECRET, AKAMAI_ACCESS_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tgandi:\tGANDI_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tgandiv5:\tGANDIV5_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tgcloud:\tGCE_PROJECT, 'Application Default Credentials', [GCE_SERVICE_ACCOUNT_FILE], [GCE_SERVICE_ACCOUNT]") | ||||
| 	fmt.Fprintln(w, "\tglesys:\tGLESYS_API_USER, GLESYS_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tgodaddy:\tGODADDY_API_KEY, GODADDY_API_SECRET") | ||||
| 	fmt.Fprintln(w, "\thostingde:\tHOSTINGDE_API_KEY, HOSTINGDE_ZONE_NAME") | ||||
| 	fmt.Fprintln(w, "\thttpreq:\tHTTPREQ_ENDPOINT, HTTPREQ_MODE, HTTPREQ_USERNAME, HTTPREQ_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\tiij:\tIIJ_API_ACCESS_KEY, IIJ_API_SECRET_KEY, IIJ_DO_SERVICE_CODE") | ||||
| 	fmt.Fprintln(w, "\tinwx:\tINWX_USERNAME, INWX_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\tlightsail:\tAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, DNS_ZONE") | ||||
| 	fmt.Fprintln(w, "\tlinode:\tLINODE_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tlinodev4:\tLINODE_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tmanual:\tnone") | ||||
| 	fmt.Fprintln(w, "\tmydnsjp:\tMYDNSJP_MASTER_ID, MYDNSJP_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\tnamecheap:\tNAMECHEAP_API_USER, NAMECHEAP_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tnamedotcom:\tNAMECOM_USERNAME, NAMECOM_API_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tnetcup:\tNETCUP_CUSTOMER_NUMBER, NETCUP_API_KEY, NETCUP_API_PASSWORD") | ||||
| 	fmt.Fprintln(w, "\tnifcloud:\tNIFCLOUD_ACCESS_KEY_ID, NIFCLOUD_SECRET_ACCESS_KEY") | ||||
| 	fmt.Fprintln(w, "\tns1:\tNS1_API_KEY") | ||||
| 	fmt.Fprintln(w, "\toraclecloud:\tOCI_PRIVKEY_FILE, OCI_PRIVKEY_PASS, OCI_TENANCY_OCID, OCI_USER_OCID, OCI_PUBKEY_FINGERPRINT, OCI_REGION, OCI_COMPARTMENT_OCID") | ||||
| 	fmt.Fprintln(w, "\totc:\tOTC_USER_NAME, OTC_PASSWORD, OTC_PROJECT_NAME, OTC_DOMAIN_NAME, OTC_IDENTITY_ENDPOINT") | ||||
| 	fmt.Fprintln(w, "\tovh:\tOVH_ENDPOINT, OVH_APPLICATION_KEY, OVH_APPLICATION_SECRET, OVH_CONSUMER_KEY") | ||||
| 	fmt.Fprintln(w, "\tpdns:\tPDNS_API_KEY, PDNS_API_URL") | ||||
| 	fmt.Fprintln(w, "\trackspace:\tRACKSPACE_USER, RACKSPACE_API_KEY") | ||||
| 	fmt.Fprintln(w, "\trfc2136:\tRFC2136_TSIG_KEY, RFC2136_TSIG_SECRET,\n\t\tRFC2136_TSIG_ALGORITHM, RFC2136_NAMESERVER") | ||||
| 	fmt.Fprintln(w, "\troute53:\tAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_HOSTED_ZONE_ID") | ||||
| 	fmt.Fprintln(w, "\tsakuracloud:\tSAKURACLOUD_ACCESS_TOKEN, SAKURACLOUD_ACCESS_TOKEN_SECRET") | ||||
| 	fmt.Fprintln(w, "\tselectel:\tSELECTEL_API_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tstackpath:\tSTACKPATH_CLIENT_ID, STACKPATH_CLIENT_SECRET, STACKPATH_STACK_ID") | ||||
| 	fmt.Fprintln(w, "\ttransip:\tTRANSIP_ACCOUNT_NAME, TRANSIP_PRIVATE_KEY_PATH") | ||||
| 	fmt.Fprintln(w, "\tvegadns:\tSECRET_VEGADNS_KEY, SECRET_VEGADNS_SECRET, VEGADNS_URL") | ||||
| 	fmt.Fprintln(w, "\tvscale:\tVSCALE_API_TOKEN") | ||||
| 	fmt.Fprintln(w, "\tvultr:\tVULTR_API_KEY") | ||||
| 	fmt.Fprintln(w, "\tzoneee:\tZONEEE_ENDPOINT, ZONEEE_API_USER, ZONEEE_API_KEY") | ||||
| 	fmt.Fprintln(w) | ||||
| 	fmt.Fprintln(w, "Additional configuration environment variables:") | ||||
| 	fmt.Fprintln(w) | ||||
| 	fmt.Fprintln(w, "\talidns:\tALICLOUD_POLLING_INTERVAL, ALICLOUD_PROPAGATION_TIMEOUT, ALICLOUD_TTL, ALICLOUD_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tauroradns:\tAURORA_POLLING_INTERVAL, AURORA_PROPAGATION_TIMEOUT, AURORA_TTL") | ||||
| 	fmt.Fprintln(w, "\tazure:\tAZURE_POLLING_INTERVAL, AZURE_PROPAGATION_TIMEOUT, AZURE_TTL, AZURE_METADATA_ENDPOINT") | ||||
| 	fmt.Fprintln(w, "\tbluecat:\tBLUECAT_POLLING_INTERVAL, BLUECAT_PROPAGATION_TIMEOUT, BLUECAT_TTL, BLUECAT_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tcloudflare:\tCLOUDFLARE_POLLING_INTERVAL, CLOUDFLARE_PROPAGATION_TIMEOUT, CLOUDFLARE_TTL, CLOUDFLARE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tcloudns:\tCLOUDNS_POLLING_INTERVAL, CLOUDNS_PROPAGATION_TIMEOUT, CLOUDNS_TTL, CLOUDNS_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tcloudxns:\tCLOUDXNS_POLLING_INTERVAL, CLOUDXNS_PROPAGATION_TIMEOUT, CLOUDXNS_TTL, CLOUDXNS_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tconoha:\tCONOHA_POLLING_INTERVAL, CONOHA_PROPAGATION_TIMEOUT, CONOHA_TTL, CONOHA_HTTP_TIMEOUT, CONOHA_REGION") | ||||
| 	fmt.Fprintln(w, "\tdesignate:\tDESIGNATE_POLLING_INTERVAL, DESIGNATE_PROPAGATION_TIMEOUT, DESIGNATE_TTL") | ||||
| 	fmt.Fprintln(w, "\tdigitalocean:\tDO_POLLING_INTERVAL, DO_PROPAGATION_TIMEOUT, DO_TTL, DO_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tdnsimple:\tDNSIMPLE_TTL, DNSIMPLE_POLLING_INTERVAL, DNSIMPLE_PROPAGATION_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tdnsmadeeasy:\tDNSMADEEASY_POLLING_INTERVAL, DNSMADEEASY_PROPAGATION_TIMEOUT, DNSMADEEASY_TTL, DNSMADEEASY_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tdnspod:\tDNSPOD_POLLING_INTERVAL, DNSPOD_PROPAGATION_TIMEOUT, DNSPOD_TTL, DNSPOD_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tdreamhost:\tDREAMHOST_POLLING_INTERVAL, DREAMHOST_PROPAGATION_TIMEOUT, DREAMHOST_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tduckdns:\tDUCKDNS_POLLING_INTERVAL, DUCKDNS_PROPAGATION_TIMEOUT, DUCKDNS_HTTP_TIMEOUT, DUCKDNS_SEQUENCE_INTERVAL") | ||||
| 	fmt.Fprintln(w, "\tdyn:\tDYN_POLLING_INTERVAL, DYN_PROPAGATION_TIMEOUT, DYN_TTL, DYN_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\texec:\tEXEC_POLLING_INTERVAL, EXEC_PROPAGATION_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\texoscale:\tEXOSCALE_POLLING_INTERVAL, EXOSCALE_PROPAGATION_TIMEOUT, EXOSCALE_TTL, EXOSCALE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tfastdns:\tAKAMAI_POLLING_INTERVAL, AKAMAI_PROPAGATION_TIMEOUT, AKAMAI_TTL") | ||||
| 	fmt.Fprintln(w, "\tgandi:\tGANDI_POLLING_INTERVAL, GANDI_PROPAGATION_TIMEOUT, GANDI_TTL, GANDI_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tgandiv5:\tGANDIV5_POLLING_INTERVAL, GANDIV5_PROPAGATION_TIMEOUT, GANDIV5_TTL, GANDIV5_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tgcloud:\tGCE_POLLING_INTERVAL, GCE_PROPAGATION_TIMEOUT, GCE_TTL") | ||||
| 	fmt.Fprintln(w, "\tglesys:\tGLESYS_POLLING_INTERVAL, GLESYS_PROPAGATION_TIMEOUT, GLESYS_TTL, GLESYS_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tgodaddy:\tGODADDY_POLLING_INTERVAL, GODADDY_PROPAGATION_TIMEOUT, GODADDY_TTL, GODADDY_HTTP_TIMEOUT, GODADDY_SEQUENCE_INTERVAL") | ||||
| 	fmt.Fprintln(w, "\thostingde:\tHOSTINGDE_POLLING_INTERVAL, HOSTINGDE_PROPAGATION_TIMEOUT, HOSTINGDE_TTL, HOSTINGDE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\thttpreq:\tHTTPREQ_POLLING_INTERVAL, HTTPREQ_PROPAGATION_TIMEOUT, HTTPREQ_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tiij:\tIIJ_POLLING_INTERVAL, IIJ_PROPAGATION_TIMEOUT, IIJ_TTL") | ||||
| 	fmt.Fprintln(w, "\tinwx:\tINWX_POLLING_INTERVAL, INWX_PROPAGATION_TIMEOUT, INWX_TTL, INWX_SANDBOX") | ||||
| 	fmt.Fprintln(w, "\tlightsail:\tLIGHTSAIL_POLLING_INTERVAL, LIGHTSAIL_PROPAGATION_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tlinode:\tLINODE_POLLING_INTERVAL, LINODE_TTL, LINODE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tlinodev4:\tLINODE_POLLING_INTERVAL, LINODE_TTL, LINODE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tmydnsjp:\tMYDNSJP_PROPAGATION_TIMEOUT, MYDNSJP_POLLING_INTERVAL, MYDNSJP_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tnamecheap:\tNAMECHEAP_POLLING_INTERVAL, NAMECHEAP_PROPAGATION_TIMEOUT, NAMECHEAP_TTL, NAMECHEAP_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tnamedotcom:\tNAMECOM_POLLING_INTERVAL, NAMECOM_PROPAGATION_TIMEOUT, NAMECOM_TTL, NAMECOM_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tnetcup:\tNETCUP_POLLING_INTERVAL, NETCUP_PROPAGATION_TIMEOUT, NETCUP_TTL, NETCUP_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tnifcloud:\tNIFCLOUD_POLLING_INTERVAL, NIFCLOUD_PROPAGATION_TIMEOUT, NIFCLOUD_TTL, NIFCLOUD_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tns1:\tNS1_POLLING_INTERVAL, NS1_PROPAGATION_TIMEOUT, NS1_TTL, NS1_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\toraclecloud:\tOCI_TTL, OCI_PROPAGATION_TIMEOUT, OCI_POLLING_INTERVAL") | ||||
| 	fmt.Fprintln(w, "\totc:\tOTC_POLLING_INTERVAL, OTC_PROPAGATION_TIMEOUT, OTC_TTL, OTC_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tovh:\tOVH_POLLING_INTERVAL, OVH_PROPAGATION_TIMEOUT, OVH_TTL, OVH_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tpdns:\tPDNS_POLLING_INTERVAL, PDNS_PROPAGATION_TIMEOUT, PDNS_TTL, PDNS_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\trackspace:\tRACKSPACE_POLLING_INTERVAL, RACKSPACE_PROPAGATION_TIMEOUT, RACKSPACE_TTL, RACKSPACE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\trfc2136:\tRFC2136_POLLING_INTERVAL, RFC2136_PROPAGATION_TIMEOUT, RFC2136_TTL, RFC2136_SEQUENCE_INTERVAL, RFC2136_DNS_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\troute53:\tAWS_POLLING_INTERVAL, AWS_PROPAGATION_TIMEOUT, AWS_TTL") | ||||
| 	fmt.Fprintln(w, "\tsakuracloud:\tSAKURACLOUD_POLLING_INTERVAL, SAKURACLOUD_PROPAGATION_TIMEOUT, SAKURACLOUD_TTL") | ||||
| 	fmt.Fprintln(w, "\tselectel:\tSELECTEL_BASE_URL, SELECTEL_TTL, SELECTEL_PROPAGATION_TIMEOUT, SELECTEL_POLLING_INTERVAL, SELECTEL_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\ttransip:\tTRANSIP_POLLING_INTERVAL, TRANSIP_PROPAGATION_TIMEOUT, TRANSIP_TTL") | ||||
| 	fmt.Fprintln(w, "\tstackpath:\tSTACKPATH_POLLING_INTERVAL, STACKPATH_PROPAGATION_TIMEOUT, STACKPATH_TTL") | ||||
| 	fmt.Fprintln(w, "\tvegadns:\tVEGADNS_POLLING_INTERVAL, VEGADNS_PROPAGATION_TIMEOUT, VEGADNS_TTL") | ||||
| 	fmt.Fprintln(w, "\tvscale:\tVSCALE_BASE_URL, VSCALE_TTL, VSCALE_PROPAGATION_TIMEOUT, VSCALE_POLLING_INTERVAL, VSCALE_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tvultr:\tVULTR_POLLING_INTERVAL, VULTR_PROPAGATION_TIMEOUT, VULTR_TTL, VULTR_HTTP_TIMEOUT") | ||||
| 	fmt.Fprintln(w, "\tzoneee:\tZONEEE_POLLING_INTERVAL, ZONEEE_PROPAGATION_TIMEOUT, ZONEEE_HTTP_TIMEOUT") | ||||
|  | ||||
| 	w.Flush() | ||||
|  | ||||
| 	fmt.Println(` | ||||
| For a more detailed explanation of a DNS provider's credential variables, | ||||
| please consult their online documentation.`) | ||||
| 	displayDNSHelp(strings.ToLower(code)) | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										1144
									
								
								cmd/zz_gen_cmd_dnshelp.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1144
									
								
								cmd/zz_gen_cmd_dnshelp.go
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| themes/ | ||||
| public/ | ||||
							
								
								
									
										20
									
								
								docs/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								docs/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| .PHONY: default clean hugo hugo-build | ||||
|  | ||||
| default: hugo | ||||
|  | ||||
| clean: | ||||
| 	rm -rf public/ | ||||
|  | ||||
|  | ||||
| hugo-build: clean hugo-themes | ||||
| 	hugo --enableGitInfo --source . | ||||
|  | ||||
| hugo: | ||||
| 	hugo server --disableFastRender --enableGitInfo --watch --source . | ||||
| 	# hugo server -D | ||||
|  | ||||
| hugo-themes: | ||||
| 	rm -rf themes | ||||
| 	mkdir themes | ||||
| 	git clone --depth=1 https://github.com/matcornic/hugo-theme-learn.git themes/hugo-theme-learn | ||||
| 	rm -rf themes/hugo-theme-learn/.git | ||||
							
								
								
									
										6
									
								
								docs/archetypes/default.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docs/archetypes/default.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| --- | ||||
| title: "{{ replace .Name "-" " " | title }}" | ||||
| date: {{ .Date }} | ||||
| draft: true | ||||
| --- | ||||
|  | ||||
							
								
								
									
										67
									
								
								docs/config.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								docs/config.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| baseURL = "https://xenolf.github.io/lego/" | ||||
| languageCode = "en-us" | ||||
| title = "Lego" | ||||
|  | ||||
| theme = "hugo-theme-learn" | ||||
|  | ||||
| # Code higlighting settings | ||||
| pygmentsCodefences = true | ||||
| pygmentsCodeFencesGuesSsyntax = false | ||||
| pygmentsOptions = "" | ||||
| pygmentsStyle = "monokai" | ||||
| # The monokai stylesheet is included in the base template. | ||||
| pygmentsUseClasses = true | ||||
|  | ||||
| [permalinks] | ||||
|   dns = "/dns/:slug/" | ||||
|  | ||||
| [params] | ||||
|   # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page. | ||||
|   # Useful to give opportunity to people to create merge request for your doc. | ||||
|   # See the config.toml file from this documentation site to have an example. | ||||
| #  editURL = "" | ||||
|   # Author of the site, will be used in meta information | ||||
|   author = "Lego Team" | ||||
|   # Description of the site, will be used in meta information | ||||
| #  description = "" | ||||
|   # Shows a checkmark for visited pages on the menu | ||||
|   showVisitedLinks = true | ||||
|   # Disable search function. It will hide search bar | ||||
| #  disableSearch = false | ||||
|   # Javascript and CSS cache are automatically busted when new version of site is generated. | ||||
|   # Set this to true to disable this behavior (some proxies don't handle well this optimization) | ||||
| #  disableAssetsBusting = false | ||||
|   # Set this to true to disable copy-to-clipboard button for inline code. | ||||
| #  disableInlineCopyToClipBoard = true | ||||
|   # A title for shortcuts in menu is set by default. Set this to true to disable it. | ||||
| #  disableShortcutsTitle = false | ||||
|   # When using mulitlingual website, disable the switch language button. | ||||
| #  disableLanguageSwitchingButton = false | ||||
|   # Hide breadcrumbs in the header and only show the current page title | ||||
| #  disableBreadcrumb = true | ||||
|   # Hide Next and Previous page buttons normally displayed full height beside content | ||||
| #  disableNextPrev = true | ||||
|   # Order sections in menu by "weight" or "title". Default to "weight" | ||||
| #  ordersectionsby = "weight" | ||||
|   # Change default color scheme with a variant one. Can be "red", "blue", "green". | ||||
|   themeVariant = "blue" | ||||
|  | ||||
| [Languages] | ||||
| [Languages.en] | ||||
|   title = "Let’s Encrypt client and ACME library written in Go." | ||||
|   weight = 1 | ||||
|   languageName = "English" | ||||
|  | ||||
| [[Languages.en.menu.shortcuts]] | ||||
|   name = "<i class='fab fa-fw fa-github'></i> Github repo" | ||||
|   identifier = "ds" | ||||
|   url = "https://github.com/xenof/lego" | ||||
|   weight = 10 | ||||
|  | ||||
| [[Languages.en.menu.shortcuts]] | ||||
|   name = "<i class='fas fa-fw fa-bug'></i> Issues" | ||||
|   url = "https://github.com/xenolf/lego/issues" | ||||
|   weight = 11 | ||||
|  | ||||
| [outputs] | ||||
|   home = [ "HTML", "RSS", "JSON"] | ||||
							
								
								
									
										30
									
								
								docs/content/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								docs/content/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| --- | ||||
| title: "Welcome" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| chapter: true | ||||
| --- | ||||
|  | ||||
| # Lego | ||||
|  | ||||
| Let's Encrypt client and ACME library written in Go. | ||||
|  | ||||
| ## Features | ||||
|  | ||||
| - Register with CA | ||||
| - Obtain certificates, both from scratch or with an existing CSR | ||||
| - Renew certificates | ||||
| - Revoke certificates | ||||
| - Robust implementation of all ACME challenges | ||||
|   - HTTP (http-01) | ||||
|   - DNS (dns-01) | ||||
|   - TLS (tls-alpn-01) | ||||
| - SAN certificate support | ||||
| - Comes with multiple optional [DNS providers](dns) | ||||
| - [Custom challenge solvers](usage/library/writing-a-challenge-solver/) | ||||
| - Certificate bundling | ||||
| - OCSP helper function | ||||
|  | ||||
|  | ||||
| lego introduced support for ACME v2 in [v1.0.0](https://github.com/xenolf/lego/releases/tag/v1.0.0).   | ||||
| If you still need to utilize ACME v1, you can do so by using the [v0.5.0](https://github.com/xenolf/lego/releases/tag/v0.5.0) version. | ||||
							
								
								
									
										18
									
								
								docs/content/dns/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/content/dns/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| --- | ||||
| title: "DNS Providers" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| weight: 3 | ||||
| --- | ||||
|  | ||||
| Credentials for DNS providers must be passed through environment variables. | ||||
|  | ||||
| Here is an example bash command using the CloudFlare DNS provider: | ||||
|  | ||||
| ```bash | ||||
| CLOUDFLARE_EMAIL=foo@bar.com \ | ||||
| CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \ | ||||
| lego --dns cloudflare --domains www.example.com --email me@bar.com run | ||||
| ``` | ||||
|  | ||||
| {{%children style="h2" description="true" %}} | ||||
							
								
								
									
										59
									
								
								docs/content/dns/manual.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								docs/content/dns/manual.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| --- | ||||
| title: "Manual" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: manual | ||||
| --- | ||||
|  | ||||
| Solving the DNS-01 challenge using CLI prompt. | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| ## Example | ||||
|  | ||||
| ```txt | ||||
| Do you accept the TOS? Y/n | ||||
|  | ||||
| [INFO] acme: Registering account for test@test.com | ||||
| !!!! HEADS UP !!!! | ||||
|  | ||||
|     Your account credentials have been saved in your Let's Encrypt | ||||
|     configuration directory at "~/.lego/accounts". | ||||
|     You should make a secure backup of this folder now. This | ||||
|     configuration directory will also contain certificates and | ||||
|     private keys obtained from Let's Encrypt so making regular | ||||
|     backups of this folder is ideal. | ||||
|      | ||||
| [INFO] [test.com] acme: Obtaining bundled SAN certificate | ||||
| [INFO] [test.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/lornkZmVYjsh5wLHpxdQcZDPekGf_TYUM-MTJk3-yrA | ||||
| [INFO] [test.com] acme: Could not find solver for: tls-alpn-01 | ||||
| [INFO] [test.com] acme: Could not find solver for: http-01 | ||||
| [INFO] [test.com] acme: use dns-01 solver | ||||
| [INFO] [test.com] acme: Preparing to solve DNS-01 | ||||
| lego: Please create the following TXT record in your test.com. zone: | ||||
| _acme-challenge.test.com. 120 IN TXT "VP-dby1RBuUOnDZg1n9sF-cwicLsognMzJb0Vx8ttAI" | ||||
| lego: Press 'Enter' when you are done | ||||
|  | ||||
| Do you accept the TOS? Y/n | ||||
|  | ||||
| [INFO] acme: Registering account for test@test.com | ||||
| !!!! HEADS UP !!!! | ||||
|  | ||||
|     Your account credentials have been saved in your Let's Encrypt | ||||
|     configuration directory at "~/.lego/accounts". | ||||
|     You should make a secure backup of this folder now. This | ||||
|     configuration directory will also contain certificates and | ||||
|     private keys obtained from Let's Encrypt so making regular | ||||
|     backups of this folder is ideal. | ||||
|  | ||||
| [INFO] [test.com] acme: Obtaining bundled SAN certificate | ||||
| [INFO] [test.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz/lornkZmVYjsh5wLHpxdQcZDPekGf_TYUM-MTJk3-yrA | ||||
| [INFO] [test.com] acme: Could not find solver for: tls-alpn-01 | ||||
| [INFO] [test.com] acme: Could not find solver for: http-01 | ||||
| [INFO] [test.com] acme: use dns-01 solver | ||||
| [INFO] [test.com] acme: Preparing to solve DNS-01 | ||||
| lego: Please create the following TXT record in your test.com. zone: | ||||
| _acme-challenge.test.com. 120 IN TXT "VP-dby1RBuUOnDZg1n9sF-cwicLsognMzJb0Vx8ttAI" | ||||
| lego: Press 'Enter' when you are done | ||||
|  | ||||
| ``` | ||||
							
								
								
									
										46
									
								
								docs/content/dns/zz_gen_acme-dns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								docs/content/dns/zz_gen_acme-dns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| --- | ||||
| title: "Joohoi's ACME-DNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: acme-dns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/acmedns/acmedns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Joohoi's ACME-DNS](https://github.com/joohoi/acme-dns). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `acme-dns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `ACME_DNS_API_BASE` | The ACME-DNS API address | | ||||
| | `ACME_DNS_STORAGE_PATH` | The ACME-DNS JSON account data file. A per-domain account will be registered/persisted to this file and used for TXT updates. | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://github.com/joohoi/acme-dns#api) | ||||
| - [Go client](https://github.com/cpu/goacmedns) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/acmedns/acmedns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_alidns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_alidns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Alibaba Cloud DNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: alidns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/alidns/alidns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Alibaba Cloud DNS](https://www.alibabacloud.com/product/dns). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `alidns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `ALICLOUD_ACCESS_KEY` | Access key ID | | ||||
| | `ALICLOUD_SECRET_KEY` | Access Key secret | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `ALICLOUD_HTTP_TIMEOUT` | API request timeout | | ||||
| | `ALICLOUD_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `ALICLOUD_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `ALICLOUD_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.alibabacloud.com/help/doc-detail/42875.htm) | ||||
| - [Go client](https://github.com/aliyun/alibaba-cloud-sdk-go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/alidns/alidns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_auroradns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_auroradns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Aurora DNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: auroradns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/auroradns/auroradns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Aurora DNS](https://www.pcextreme.com/aurora/dns). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `auroradns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `AURORA_ENDPOINT` | API endpoint URL | | ||||
| | `AURORA_KEY` | User API key | | ||||
| | `AURORA_USER_ID` | User ID | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `AURORA_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `AURORA_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `AURORA_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://libcloud.readthedocs.io/en/latest/dns/drivers/auroradns.html#api-docs) | ||||
| - [Go client](https://github.com/nrdcg/auroradns) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/auroradns/auroradns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										58
									
								
								docs/content/dns/zz_gen_azure.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/content/dns/zz_gen_azure.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| --- | ||||
| title: "Azure" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: azure | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/azure/azure.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Azure](https://azure.microsoft.com/services/dns/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `azure` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `AZURE_CLIENT_ID` | Client ID | | ||||
| | `AZURE_CLIENT_SECRET` | Client secret | | ||||
| | `AZURE_RESOURCE_GROUP` | Resource group | | ||||
| | `AZURE_SUBSCRIPTION_ID` | Subscription ID | | ||||
| | `AZURE_TENANT_ID` | Tenant ID | | ||||
| | `instance metadata service` | If the credentials are **not** set via the environment, then it will attempt to get a bearer token via the [instance metadata service](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service). | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `AZURE_METADATA_ENDPOINT` | Metadata Service endpoint URL | | ||||
| | `AZURE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `AZURE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `AZURE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://docs.microsoft.com/en-us/go/azure/) | ||||
| - [Go client](https://github.com/Azure/azure-sdk-for-go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/azure/azure.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_bluecat.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_bluecat.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Bluecat" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: bluecat | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/bluecat/bluecat.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Bluecat](https://www.bluecatnetworks.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `bluecat` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `BLUECAT_CONFIG_NAME` | Configuration name | | ||||
| | `BLUECAT_DNS_VIEW` | External DNS View Name | | ||||
| | `BLUECAT_PASSWORD` | API password | | ||||
| | `BLUECAT_SERVER_URL` | The server URL, should have scheme, hostname, and port (if required) of the authoritative Bluecat BAM serve | | ||||
| | `BLUECAT_USER_NAME` | API username | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `BLUECAT_HTTP_TIMEOUT` | API request timeout | | ||||
| | `BLUECAT_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `BLUECAT_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `BLUECAT_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/bluecat/bluecat.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										58
									
								
								docs/content/dns/zz_gen_cloudflare.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/content/dns/zz_gen_cloudflare.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| --- | ||||
| title: "Cloudflare" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: cloudflare | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/cloudflare/cloudflare.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Cloudflare](https://www.cloudflare.com/dns/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `cloudflare` | ||||
|  | ||||
| Here is an example bash command using the Cloudflare provider: | ||||
|  | ||||
| ```bash | ||||
| CLOUDFLARE_EMAIL=foo@bar.com \ | ||||
| CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \ | ||||
| lego --dns cloudflare --domains my.domain.com --email my@email.com run | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `CLOUDFLARE_API_KEY` | API key | | ||||
| | `CLOUDFLARE_EMAIL` | Account email | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `CLOUDFLARE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `CLOUDFLARE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `CLOUDFLARE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `CLOUDFLARE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://api.cloudflare.com/) | ||||
| - [Go client](https://github.com/cloudflare/cloudflare-go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/cloudflare/cloudflare.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_cloudns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_cloudns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "ClouDNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: cloudns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/cloudns/cloudns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [ClouDNS](https://www.cloudns.net). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `cloudns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `CLOUDNS_AUTH_ID` | The API user ID | | ||||
| | `CLOUDNS_AUTH_PASSWORD` | The password for API user ID | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `CLOUDNS_HTTP_TIMEOUT` | API request timeout | | ||||
| | `CLOUDNS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `CLOUDNS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `CLOUDNS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.cloudns.net/wiki/article/42/) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/cloudns/cloudns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_cloudxns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_cloudxns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "CloudXNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: cloudxns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/cloudxns/cloudxns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [CloudXNS](https://www.cloudxns.net/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `cloudxns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `CLOUDXNS_API_KEY` | The API key | | ||||
| | `CLOUDXNS_SECRET_KEY` | THe API secret key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `CLOUDXNS_HTTP_TIMEOUT` | API request timeout | | ||||
| | `CLOUDXNS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `CLOUDXNS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `CLOUDXNS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.cloudxns.net/Public/Doc/CloudXNS_api2.0_doc_zh-cn.zip) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/cloudxns/cloudxns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										55
									
								
								docs/content/dns/zz_gen_conoha.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								docs/content/dns/zz_gen_conoha.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| --- | ||||
| title: "ConoHa" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: conoha | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/conoha/conoha.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [ConoHa](https://www.conoha.jp/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `conoha` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `CONOHA_API_PASSWORD` | The API password | | ||||
| | `CONOHA_API_USERNAME` | The API username | | ||||
| | `CONOHA_TENANT_ID` | Tenant ID | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `CONOHA_HTTP_TIMEOUT` | API request timeout | | ||||
| | `CONOHA_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `CONOHA_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `CONOHA_REGION` | The region | | ||||
| | `CONOHA_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.conoha.jp/docs/) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/conoha/conoha.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										56
									
								
								docs/content/dns/zz_gen_designate.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs/content/dns/zz_gen_designate.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| --- | ||||
| title: "Designate DNSaaS for Openstack" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: designate | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/designate/designate.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Designate DNSaaS for Openstack](https://docs.openstack.org/designate/latest/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `designate` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `OS_AUTH_URL` | Identity endpoint URL | | ||||
| | `OS_PASSWORD` | Password | | ||||
| | `OS_REGION_NAME` | Region name | | ||||
| | `OS_TENANT_NAME` | Tenant name | | ||||
| | `OS_USERNAME` | Username | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DESIGNATE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DESIGNATE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DESIGNATE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://docs.openstack.org/designate/latest/) | ||||
| - [Go client](https://godoc.org/github.com/gophercloud/gophercloud/openstack/dns/v2) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/designate/designate.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										52
									
								
								docs/content/dns/zz_gen_digitalocean.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/dns/zz_gen_digitalocean.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| title: "Digital Ocean" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: digitalocean | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/digitalocean/digitalocean.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Digital Ocean](https://www.digitalocean.com/docs/networking/dns/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `digitalocean` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DO_AUTH_TOKEN` | Authentication token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DO_HTTP_TIMEOUT` | API request timeout | | ||||
| | `DO_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DO_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DO_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developers.digitalocean.com/documentation/v2/#domain-records) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/digitalocean/digitalocean.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_dnsimple.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_dnsimple.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "DNSimple" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: dnsimple | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dnsimple/dnsimple.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [DNSimple](https://dnsimple.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `dnsimple` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DNSIMPLE_BASE_URL` | API endpoint URL | | ||||
| | `DNSIMPLE_OAUTH_TOKEN` | OAuth token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DNSIMPLE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DNSIMPLE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DNSIMPLE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developer.dnsimple.com/v2/) | ||||
| - [Go client](https://github.com/dnsimple/dnsimple-go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dnsimple/dnsimple.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_dnsmadeeasy.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_dnsmadeeasy.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "DNS Made Easy" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: dnsmadeeasy | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dnsmadeeasy/dnsmadeeasy.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [DNS Made Easy](https://dnsmadeeasy.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `dnsmadeeasy` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DNSMADEEASY_API_KEY` | The API key | | ||||
| | `DNSMADEEASY_API_SECRET` | The API Secret key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DNSMADEEASY_HTTP_TIMEOUT` | API request timeout | | ||||
| | `DNSMADEEASY_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DNSMADEEASY_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DNSMADEEASY_SANDBOX` | Activate the sandbox (boolean) | | ||||
| | `DNSMADEEASY_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://api-docs.dnsmadeeasy.com/) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dnsmadeeasy/dnsmadeeasy.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_dnspod.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_dnspod.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "DNSPod" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: dnspod | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dnspod/dnspod.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [DNSPod](http://www.dnspod.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `dnspod` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DNSPOD_API_KEY` | The user token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DNSPOD_HTTP_TIMEOUT` | API request timeout | | ||||
| | `DNSPOD_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DNSPOD_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DNSPOD_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.dnspod.com/docs/index.html) | ||||
| - [Go client](https://github.com/decker502/dnspod-go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dnspod/dnspod.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										52
									
								
								docs/content/dns/zz_gen_dreamhost.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/dns/zz_gen_dreamhost.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| title: "DreamHost" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: dreamhost | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dreamhost/dreamhost.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [DreamHost](https://www.dreamhost.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `dreamhost` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DREAMHOST_API_KEY` | The API key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DREAMHOST_HTTP_TIMEOUT` | API request timeout | | ||||
| | `DREAMHOST_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DREAMHOST_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DREAMHOST_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://help.dreamhost.com/hc/en-us/articles/217560167-API_overview) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dreamhost/dreamhost.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_duckdns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_duckdns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Duck DNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: duckdns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/duckdns/duckdns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Duck DNS](https://www.duckdns.org/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `duckdns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DUCKDNS_TOKEN` | Account token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DUCKDNS_HTTP_TIMEOUT` | API request timeout | | ||||
| | `DUCKDNS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DUCKDNS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DUCKDNS_SEQUENCE_INTERVAL` | Interval between iteration | | ||||
| | `DUCKDNS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.duckdns.org/spec.jsp) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/duckdns/duckdns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_dyn.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_dyn.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Dyn" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: dyn | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dyn/dyn.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Dyn](https://dyn.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `dyn` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `DYN_CUSTOMER_NAME` | Customer name | | ||||
| | `DYN_PASSWORD` | Paswword | | ||||
| | `DYN_USER_NAME` | User name | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `DYN_HTTP_TIMEOUT` | API request timeout | | ||||
| | `DYN_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `DYN_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `DYN_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://help.dyn.com/rest/) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/dyn/dyn.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										133
									
								
								docs/content/dns/zz_gen_exec.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								docs/content/dns/zz_gen_exec.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | ||||
| --- | ||||
| title: "External program" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: exec | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/exec/exec.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
| Solving the DNS-01 challenge using an external program. | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `exec` | ||||
|  | ||||
| Here is an example bash command using the External program provider: | ||||
|  | ||||
| ```bash | ||||
| EXEC_PATH=/the/path/to/myscript.sh \ | ||||
| lego --dns exec --domains my.domain.com --email my@email.com run | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Base Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `EXEC_MODE` | `RAW`, none | | ||||
| | `EXEC_PATH` | TODO | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `EXEC_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `EXEC_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
|  | ||||
|  | ||||
| ## Description | ||||
|  | ||||
| The file name of the external program is specified in the environment variable `EXEC_PATH`. | ||||
|  | ||||
| When it is run by lego, three command-line parameters are passed to it: | ||||
| The action ("present" or "cleanup"), the fully-qualified domain name and the value for the record. | ||||
|  | ||||
| For example, requesting a certificate for the domain 'foo.example.com' can be achieved by calling lego as follows: | ||||
|  | ||||
| ```bash | ||||
| EXEC_PATH=./update-dns.sh \ | ||||
| 	lego --dns exec \ | ||||
| 	--domains foo.example.com \ | ||||
| 	--email invalid@example.com run | ||||
| ``` | ||||
|  | ||||
| It will then call the program './update-dns.sh' with like this: | ||||
|  | ||||
| ```bash | ||||
| ./update-dns.sh "present" "_acme-challenge.foo.example.com." "MsijOYZxqyjGnFGwhjrhfg-Xgbl5r68WPda0J9EgqqI" | ||||
| ``` | ||||
|  | ||||
| The program then needs to make sure the record is inserted. | ||||
| When it returns an error via a non-zero exit code, lego aborts. | ||||
|  | ||||
| When the record is to be removed again, | ||||
| the program is called with the first command-line parameter set to `cleanup` instead of `present`. | ||||
|  | ||||
| If you want to use the raw domain, token, and keyAuth values with your program, you can set `EXEC_MODE=RAW`: | ||||
|  | ||||
| ```bash | ||||
| EXEC_MODE=RAW \ | ||||
| EXEC_PATH=./update-dns.sh \ | ||||
| 	lego --dns exec \ | ||||
| 	--domains foo.example.com \ | ||||
| 	--email invalid@example.com run | ||||
| ``` | ||||
|  | ||||
| It will then call the program `./update-dns.sh` like this: | ||||
|  | ||||
| ```bash | ||||
| ./update-dns.sh "present" "foo.example.com." "--" "some-token" "KxAy-J3NwUmg9ZQuM-gP_Mq1nStaYSaP9tYQs5_-YsE.ksT-qywTd8058G-SHHWA3RAN72Pr0yWtPYmmY5UBpQ8" | ||||
| ``` | ||||
|  | ||||
| ## Commands | ||||
|  | ||||
| {{% notice note %}} | ||||
| The `--` is because the token MAY start with a `-`, and the called program may try and interpret a `-` as indicating a flag. | ||||
| In the case of urfave, which is commonly used, | ||||
| you can use the `--` delimiter to specify the start of positional arguments, and handle such a string safely. | ||||
| {{% /notice %}} | ||||
|  | ||||
| ### Present | ||||
|  | ||||
| | Mode    | Command                                            | | ||||
| |---------|----------------------------------------------------| | ||||
| | default | `myprogram present -- <FQDN> <record>`             | | ||||
| | `RAW`   | `myprogram present -- <domain> <token> <key_auth>` | | ||||
|  | ||||
| ### Cleanup | ||||
|  | ||||
| | Mode    | Command                                            | | ||||
| |---------|----------------------------------------------------| | ||||
| | default | `myprogram cleanup -- <FQDN> <record>`             | | ||||
| | `RAW`   | `myprogram cleanup -- <domain> <token> <key_auth>` | | ||||
|  | ||||
| ### Timeout | ||||
|  | ||||
| The command have to display propagation timeout and polling interval into Stdout. | ||||
|  | ||||
| The values must be formatted as JSON, and times are in seconds. | ||||
| Example: `{"timeout": 30, "interval": 5}` | ||||
|  | ||||
| If an error occurs or if the command is not provided: | ||||
| the default display propagation timeout and polling interval are used. | ||||
|  | ||||
| | Mode    | Command                                            | | ||||
| |---------|----------------------------------------------------| | ||||
| | default | `myprogram timeout`                                | | ||||
| | `RAW`   | `myprogram timeout`                                | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/exec/exec.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										55
									
								
								docs/content/dns/zz_gen_exoscale.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								docs/content/dns/zz_gen_exoscale.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| --- | ||||
| title: "Exoscale" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: exoscale | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/exoscale/exoscale.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Exoscale](https://www.exoscale.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `exoscale` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `EXOSCALE_API_KEY` | API key | | ||||
| | `EXOSCALE_API_SECRET` | API secret | | ||||
| | `EXOSCALE_ENDPOINT` | API endpoint URL | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `EXOSCALE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `EXOSCALE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `EXOSCALE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `EXOSCALE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://community.exoscale.com/documentation/dns/api/) | ||||
| - [Go client](https://github.com/exoscale/egoscale) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/exoscale/exoscale.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										55
									
								
								docs/content/dns/zz_gen_fastdns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								docs/content/dns/zz_gen_fastdns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| --- | ||||
| title: "FastDNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: fastdns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/fastdns/fastdns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [FastDNS](https://www.akamai.com/us/en/products/security/fast-dns.jsp). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `fastdns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `AKAMAI_ACCESS_TOKEN` | Access token | | ||||
| | `AKAMAI_CLIENT_SECRET` | Client secret | | ||||
| | `AKAMAI_CLIENT_TOKEN` | Client token | | ||||
| | `AKAMAI_HOST` | API host | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `AKAMAI_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `AKAMAI_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `AKAMAI_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developer.akamai.com/api/web_performance/fast_dns_record_management/v1.html) | ||||
| - [Go client](https://github.com/akamai/AkamaiOPEN-edgegrid-golang) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/fastdns/fastdns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										52
									
								
								docs/content/dns/zz_gen_gandi.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/dns/zz_gen_gandi.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| title: "Gandi" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: gandi | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/gandi/gandi.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Gandi](https://www.gandi.net). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `gandi` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `GANDI_API_KEY` | API key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `GANDI_HTTP_TIMEOUT` | API request timeout | | ||||
| | `GANDI_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `GANDI_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `GANDI_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](http://doc.rpc.gandi.net/index.html) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/gandi/gandi.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										52
									
								
								docs/content/dns/zz_gen_gandiv5.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/dns/zz_gen_gandiv5.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| title: "Gandi Live DNS (v5)" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: gandiv5 | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/gandiv5/gandiv5.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Gandi Live DNS (v5)](https://www.gandi.net). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `gandiv5` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `GANDIV5_API_KEY` | API key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `GANDIV5_HTTP_TIMEOUT` | API request timeout | | ||||
| | `GANDIV5_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `GANDIV5_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `GANDIV5_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](http://doc.livedns.gandi.net) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/gandiv5/gandiv5.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										55
									
								
								docs/content/dns/zz_gen_gcloud.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								docs/content/dns/zz_gen_gcloud.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| --- | ||||
| title: "Google Cloud" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: gcloud | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/gcloud/gcloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Google Cloud](https://cloud.google.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `gcloud` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `Application Default Credentials` | [Documentation](https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application) | | ||||
| | `GCE_PROJECT` | Project name | | ||||
| | `GCE_SERVICE_ACCOUNT` | Account | | ||||
| | `GCE_SERVICE_ACCOUNT_FILE` | Account file path | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `GCE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `GCE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `GCE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://community.exoscale.com/documentation/dns/api/) | ||||
| - [Go client](https://github.com/googleapis/google-api-go-client) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/gcloud/gcloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_glesys.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_glesys.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Glesys" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: glesys | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/glesys/glesys.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Glesys](https://glesys.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `glesys` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `GLESYS_API_KEY` | API key | | ||||
| | `GLESYS_API_USER` | API user | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `GLESYS_HTTP_TIMEOUT` | API request timeout | | ||||
| | `GLESYS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `GLESYS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `GLESYS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://github.com/GleSYS/API/wiki/API-Documentation) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/glesys/glesys.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_godaddy.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_godaddy.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Go Daddy" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: godaddy | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/godaddy/godaddy.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Go Daddy](https://godaddy.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `godaddy` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `GODADDY_API_KEY` | **TODO** | | ||||
| | `GODADDY_API_SECRET` | **TODO** | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `GODADDY_HTTP_TIMEOUT` | API request timeout | | ||||
| | `GODADDY_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `GODADDY_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `GODADDY_SEQUENCE_INTERVAL` | Interval between iteration | | ||||
| | `GODADDY_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developer.godaddy.com/doc/endpoint/domains) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/godaddy/godaddy.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_hostingde.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_hostingde.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Hosting.de" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: hostingde | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/hostingde/hostingde.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Hosting.de](https://www.hosting.de/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `hostingde` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `HOSTINGDE_API_KEY` | **TODO** | | ||||
| | `HOSTINGDE_ZONE_NAME` | **TODO** | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `HOSTINGDE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `HOSTINGDE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `HOSTINGDE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `HOSTINGDE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.hosting.de/api/#dns) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/hostingde/hostingde.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										91
									
								
								docs/content/dns/zz_gen_httpreq.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								docs/content/dns/zz_gen_httpreq.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,91 @@ | ||||
| --- | ||||
| title: "HTTP request" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: httpreq | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/httpreq/httpreq.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [HTTP request](/dns/httpreq/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `httpreq` | ||||
|  | ||||
| Here is an example bash command using the HTTP request provider: | ||||
|  | ||||
| ```bash | ||||
| HTTPREQ_ENDPOINT=http://my.server.com:9090 \ | ||||
| lego --dns httpreq --domains my.domain.com --email my@email.com run | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `HTTPREQ_ENDPOINT` | The URL of the server | | ||||
| | `HTTPREQ_MODE` | `RAW`, none | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `HTTPREQ_HTTP_TIMEOUT` | API request timeout | | ||||
| | `HTTPREQ_PASSWORD` | **TODO** | | ||||
| | `HTTPREQ_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `HTTPREQ_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `HTTPREQ_USERNAME` | **TODO** | | ||||
|  | ||||
| ## Description | ||||
|  | ||||
| The server must provide: | ||||
|  | ||||
| - `POST` `/present` | ||||
| - `POST` `/cleanup` | ||||
|  | ||||
| The URL of the server must be define by `HTTPREQ_ENDPOINT`. | ||||
|  | ||||
| ### Mode | ||||
|  | ||||
| There are 2 modes (`HTTPREQ_MODE`): | ||||
|  | ||||
| - default mode: | ||||
| ```json | ||||
| { | ||||
|   "fqdn": "_acme-challenge.domain.", | ||||
|   "value": "LHDhK3oGRvkiefQnx7OOczTY5Tic_xZ6HcMOc_gmtoM" | ||||
| } | ||||
| ``` | ||||
|  | ||||
| - `RAW` | ||||
| ```json | ||||
| { | ||||
|   "domain": "domain", | ||||
|   "token": "token", | ||||
|   "keyAuth": "key" | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ### Authentication | ||||
|  | ||||
| Basic authentication (optional) can be set with some environment variables: | ||||
|  | ||||
| - `HTTPREQ_USERNAME` and `HTTPREQ_PASSWORD` | ||||
| - both values must be set, otherwise basic authentication is not defined. | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/httpreq/httpreq.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_iij.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_iij.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Internet Initiative Japan" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: iij | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/iij/iij.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Internet Initiative Japan](https://www.iij.ad.jp/en/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `iij` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `IIJ_API_ACCESS_KEY` | API access key | | ||||
| | `IIJ_API_SECRET_KEY` | API secret key | | ||||
| | `IIJ_DO_SERVICE_CODE` | DO service code | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `IIJ_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `IIJ_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `IIJ_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](http://manual.iij.jp/p2/pubapi/http://manual.iij.jp/p2/pubapi/) | ||||
| - [Go client](https://github.com/iij/doapi) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/iij/iij.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_inwx.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_inwx.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "INWX" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: inwx | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/inwx/inwx.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [INWX](https://www.inwx.de/en). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `inwx` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `INWX_PASSWORD` | Password | | ||||
| | `INWX_USERNAME` | Username | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `INWX_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `INWX_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `INWX_SANDBOX` | Activate the sandbox (boolean) | | ||||
| | `INWX_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.inwx.de/en/help/apidoc) | ||||
| - [Go client](https://github.com/nrdcg/goinwx) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/inwx/inwx.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_lightsail.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_lightsail.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Amazon Lightsail" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: lightsail | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/lightsail/lightsail.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Amazon Lightsail](https://aws.amazon.com/lightsail/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `lightsail` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `AWS_ACCESS_KEY_ID` | Access key ID | | ||||
| | `AWS_SECRET_ACCESS_KEY` | Secret access key | | ||||
| | `DNS_ZONE` | DNS zone | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `LIGHTSAIL_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `LIGHTSAIL_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
|  | ||||
| - [Go client](https://github.com/aws/aws-sdk-go/aws) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/lightsail/lightsail.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										52
									
								
								docs/content/dns/zz_gen_linode.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/dns/zz_gen_linode.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| title: "Linode (deprecated)" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: linode | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/linode/linode.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Linode (deprecated)](https://www.linode.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `linode` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `LINODE_API_KEY` | API key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `LINODE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `LINODE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `LINODE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.linode.com/api/dns) | ||||
| - [Go client](https://github.com/timewasted/linode) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/linode/linode.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										52
									
								
								docs/content/dns/zz_gen_linodev4.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/content/dns/zz_gen_linodev4.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| --- | ||||
| title: "Linode (v4)" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: linodev4 | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/linodev4/linodev4.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Linode (v4)](https://www.linode.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `linodev4` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `LINODE_TOKEN` | API token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `LINODE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `LINODE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `LINODE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developers.linode.com/api/v4) | ||||
| - [Go client](https://github.com/linode/linodego) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/linodev4/linodev4.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_mydnsjp.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_mydnsjp.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "MyDNS.jp" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: mydnsjp | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/mydnsjp/mydnsjp.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [MyDNS.jp](https://www.mydns.jp). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `mydnsjp` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `MYDNSJP_MASTER_ID` | Master ID | | ||||
| | `MYDNSJP_PASSWORD` | Password | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `MYDNSJP_HTTP_TIMEOUT` | API request timeout | | ||||
| | `MYDNSJP_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `MYDNSJP_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `MYDNSJP_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.mydns.jp/?MENU=030) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/mydnsjp/mydnsjp.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_namecheap.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_namecheap.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Namecheap" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: namecheap | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/namecheap/namecheap.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Namecheap](https://www.namecheap.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `namecheap` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `NAMECHEAP_API_KEY` | API key | | ||||
| | `NAMECHEAP_API_USER` | API user | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `NAMECHEAP_HTTP_TIMEOUT` | API request timeout | | ||||
| | `NAMECHEAP_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `NAMECHEAP_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `NAMECHEAP_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.namecheap.com/support/api/methods.aspx) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/namecheap/namecheap.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_namedotcom.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_namedotcom.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Name.com" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: namedotcom | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/namedotcom/namedotcom.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Name.com](https://www.name.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `namedotcom` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `NAMECOM_API_TOKEN` | API token | | ||||
| | `NAMECOM_USERNAME` | Username | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `NAMECOM_HTTP_TIMEOUT` | API request timeout | | ||||
| | `NAMECOM_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `NAMECOM_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `NAMECOM_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.name.com/api-docs/DNS) | ||||
| - [Go client](https://github.com/namedotcom/go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/namedotcom/namedotcom.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_netcup.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_netcup.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Netcup" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: netcup | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/netcup/netcup.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Netcup](https://www.netcup.eu/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `netcup` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `NETCUP_API_KEY` | API key | | ||||
| | `NETCUP_API_PASSWORD` | API password | | ||||
| | `NETCUP_CUSTOMER_NUMBER` | Customer number | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `NETCUP_HTTP_TIMEOUT` | API request timeout | | ||||
| | `NETCUP_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `NETCUP_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `NETCUP_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.netcup-wiki.de/wiki/DNS_API) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/netcup/netcup.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_nifcloud.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_nifcloud.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "NIFCloud" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: nifcloud | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/nifcloud/nifcloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [NIFCloud](https://www.nifcloud.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `nifcloud` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `NIFCLOUD_ACCESS_KEY_ID` | Access key | | ||||
| | `NIFCLOUD_SECRET_ACCESS_KEY` | Secret access key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `NIFCLOUD_HTTP_TIMEOUT` | API request timeout | | ||||
| | `NIFCLOUD_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `NIFCLOUD_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `NIFCLOUD_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://mbaas.nifcloud.com/doc/current/rest/common/format.html) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/nifcloud/nifcloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_ns1.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_ns1.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "NS1" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: ns1 | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/ns1/ns1.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [NS1](https://ns1.com). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `ns1` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `NS1_API_KEY` | API key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `NS1_HTTP_TIMEOUT` | API request timeout | | ||||
| | `NS1_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `NS1_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `NS1_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://ns1.com/api) | ||||
| - [Go client](https://github.com/ns1/ns1-go) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/ns1/ns1.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										67
									
								
								docs/content/dns/zz_gen_oraclecloud.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								docs/content/dns/zz_gen_oraclecloud.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| --- | ||||
| title: "Oracle Cloud" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: oraclecloud | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/oraclecloud/oraclecloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Oracle Cloud](https://cloud.oracle.com/home). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `oraclecloud` | ||||
|  | ||||
| Here is an example bash command using the Oracle Cloud provider: | ||||
|  | ||||
| ```bash | ||||
| OCI_PRIVKEY_FILE="~/.oci/oci_api_key.pem" \ | ||||
| OCI_PRIVKEY_PASS="secret" \ | ||||
| OCI_TENANCY_OCID="ocid1.tenancy.oc1..secret" \ | ||||
| OCI_USER_OCID="ocid1.user.oc1..secret" \ | ||||
| OCI_PUBKEY_FINGERPRINT="00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00" \ | ||||
| OCI_REGION="us-phoenix-1" \ | ||||
| OCI_COMPARTMENT_OCID="ocid1.tenancy.oc1..secret" \ | ||||
| lego --dns oraclecloud --domains my.domain.com --email my@email.com run | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `OCI_COMPARTMENT_OCID` | Compartment OCID | | ||||
| | `OCI_PRIVKEY_FILE` | Private key file | | ||||
| | `OCI_PRIVKEY_PASS` | Private key password | | ||||
| | `OCI_PUBKEY_FINGERPRINT` | Public key fingerprint | | ||||
| | `OCI_REGION` | Region | | ||||
| | `OCI_TENANCY_OCID` | Tenanct OCID | | ||||
| | `OCI_USER_OCID` | User OCID | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `OCI_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `OCI_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `OCI_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://docs.cloud.oracle.com/iaas/Content/DNS/Concepts/dnszonemanagement.htm) | ||||
| - [Go client](https://github.com/oracle/oci-go-sdk) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/oraclecloud/oraclecloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										56
									
								
								docs/content/dns/zz_gen_otc.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs/content/dns/zz_gen_otc.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| --- | ||||
| title: "Open Telekom Cloud" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: otc | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/otc/otc.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Open Telekom Cloud](https://cloud.telekom.de/en). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `otc` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `OTC_DOMAIN_NAME` | Domain name | | ||||
| | `OTC_IDENTITY_ENDPOINT` | Identity endpoint URL | | ||||
| | `OTC_PASSWORD` | Password | | ||||
| | `OTC_PROJECT_NAME` | Project name | | ||||
| | `OTC_USER_NAME` | User name | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `OTC_HTTP_TIMEOUT` | API request timeout | | ||||
| | `OTC_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `OTC_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `OTC_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://docs.otc.t-systems.com/en-us/dns/index.html) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/otc/otc.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										56
									
								
								docs/content/dns/zz_gen_ovh.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs/content/dns/zz_gen_ovh.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| --- | ||||
| title: "OVH" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: ovh | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/ovh/ovh.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [OVH](https://www.ovh.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `ovh` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `OVH_APPLICATION_KEY` | Application key | | ||||
| | `OVH_APPLICATION_SECRET` | Application secret | | ||||
| | `OVH_CONSUMER_KEY` | Consumer key | | ||||
| | `OVH_ENDPOINT` | Endpoint URL (ovh-eu or ovh-ca) | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `OVH_HTTP_TIMEOUT` | API request timeout | | ||||
| | `OVH_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `OVH_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `OVH_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://eu.api.ovh.com/) | ||||
| - [Go client](https://github.com/ovh/go-ovh) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/ovh/ovh.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										60
									
								
								docs/content/dns/zz_gen_pdns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								docs/content/dns/zz_gen_pdns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | ||||
| --- | ||||
| title: "PowerDNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: pdns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/pdns/pdns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [PowerDNS](https://www.powerdns.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `pdns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `PDNS_API_KEY` | API key | | ||||
| | `PDNS_API_URL` | API url | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `PDNS_HTTP_TIMEOUT` | API request timeout | | ||||
| | `PDNS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `PDNS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `PDNS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
| ## Information | ||||
|  | ||||
| Tested and confirmed to work with PowerDNS authoritative server 3.4.8 and 4.0.1. Refer to [PowerDNS documentation](https://doc.powerdns.com/md/httpapi/README/) instructions on how to enable the built-in API interface. | ||||
|  | ||||
| PowerDNS Notes: | ||||
| - PowerDNS API does not currently support SSL, therefore you should take care to ensure that traffic between lego and the PowerDNS API is over a trusted network, VPN etc. | ||||
| - In order to have the SOA serial automatically increment each time the `_acme-challenge` record is added/modified via the API, set `SOA-EDIT-API` to `INCEPTION-INCREMENT` for the zone in the `domainmetadata` table | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://doc.powerdns.com/md/httpapi/README/) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/pdns/pdns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_rackspace.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_rackspace.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Rackspace" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: rackspace | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/rackspace/rackspace.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Rackspace](https://www.rackspace.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `rackspace` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `RACKSPACE_API_KEY` | API key | | ||||
| | `RACKSPACE_USER` | API user | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `RACKSPACE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `RACKSPACE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `RACKSPACE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `RACKSPACE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developer.rackspace.com/docs/cloud-dns/v1/) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/rackspace/rackspace.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										56
									
								
								docs/content/dns/zz_gen_rfc2136.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs/content/dns/zz_gen_rfc2136.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| --- | ||||
| title: "RFC2136" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: rfc2136 | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/rfc2136/rfc2136.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [RFC2136](https://tools.ietf.org/html/rfc2136). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `rfc2136` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `RFC2136_NAMESERVER` | Network address in the form "host" or "host:port" | | ||||
| | `RFC2136_TSIG_ALGORITHM` | TSIG algorythm. See [miekg/dns#tsig.go](https://github.com/miekg/dns/blob/master/tsig.go) for supported values. To disable TSIG authentication, leave the `RFC2136_TSIG*` variables unset. | | ||||
| | `RFC2136_TSIG_KEY` | Name of the secret key as defined in DNS server configuration. To disable TSIG authentication, leave the `RFC2136_TSIG*` variables unset. | | ||||
| | `RFC2136_TSIG_SECRET` | Secret key payload. To disable TSIG authentication, leave the` RFC2136_TSIG*` variables unset. | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `RFC2136_DNS_TIMEOUT` | API request timeout | | ||||
| | `RFC2136_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `RFC2136_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `RFC2136_SEQUENCE_INTERVAL` | Interval between iteration | | ||||
| | `RFC2136_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://tools.ietf.org/html/rfc2136) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/rfc2136/rfc2136.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										98
									
								
								docs/content/dns/zz_gen_route53.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								docs/content/dns/zz_gen_route53.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,98 @@ | ||||
| --- | ||||
| title: "Amazon Route 53" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: route53 | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/route53/route53.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Amazon Route 53](https://aws.amazon.com/route53/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `route53` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `AWS_ACCESS_KEY_ID` |  | | ||||
| | `AWS_HOSTED_ZONE_ID` |  | | ||||
| | `AWS_REGION` |  | | ||||
| | `AWS_SECRET_ACCESS_KEY` |  | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `AWS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `AWS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `AWS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
| ## Description | ||||
|  | ||||
| AWS Credentials are automatically detected in the following locations and prioritized in the following order: | ||||
|  | ||||
| 1. Environment variables: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, [`AWS_SESSION_TOKEN`] | ||||
| 2. Shared credentials file (defaults to `~/.aws/credentials`) | ||||
| 3. Amazon EC2 IAM role | ||||
|  | ||||
| If `AWS_HOSTED_ZONE_ID` is not set, Lego tries to determine the correct public hosted zone via the FQDN. | ||||
|  | ||||
| See also: [configuring-sdk](https://github.com/aws/aws-sdk-go/wiki/configuring-sdk) | ||||
|  | ||||
| ## Policy | ||||
|  | ||||
| The following AWS IAM policy document describes the permissions required for lego to complete the DNS challenge. | ||||
|  | ||||
| ```json | ||||
| { | ||||
|    "Version": "2012-10-17", | ||||
|    "Statement": [ | ||||
|        { | ||||
|            "Sid": "", | ||||
|            "Effect": "Allow", | ||||
|            "Action": [ | ||||
|                "route53:GetChange", | ||||
|                "route53:ChangeResourceRecordSets", | ||||
|                "route53:ListResourceRecordSets" | ||||
|            ], | ||||
|            "Resource": [ | ||||
|                "arn:aws:route53:::hostedzone/*", | ||||
|                "arn:aws:route53:::change/*" | ||||
|            ] | ||||
|        }, | ||||
|        { | ||||
|            "Sid": "", | ||||
|            "Effect": "Allow", | ||||
|            "Action": "route53:ListHostedZonesByName", | ||||
|            "Resource": "*" | ||||
|        } | ||||
|    ] | ||||
| } | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://docs.aws.amazon.com/Route53/latest/APIReference/API_Operations_Amazon_Route_53.html) | ||||
| - [Go client](https://github.com/aws/aws-sdk-go/aws) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/route53/route53.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_sakuracloud.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_sakuracloud.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Sakura Cloud" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: sakuracloud | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/sakuracloud/sakuracloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Sakura Cloud](https://cloud.sakura.ad.jp/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `sakuracloud` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `SAKURACLOUD_ACCESS_TOKEN` | Access token | | ||||
| | `SAKURACLOUD_ACCESS_TOKEN_SECRET` | Access token secret | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `SAKURACLOUD_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `SAKURACLOUD_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `SAKURACLOUD_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developer.sakura.ad.jp/cloud/api/1.1/) | ||||
| - [Go client](https://github.com/sacloud/libsacloud) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/sakuracloud/sakuracloud.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_selectel.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_selectel.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Selectel" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: selectel | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/selectel/selectel.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Selectel](https://kb.selectel.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `selectel` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `SELECTEL_API_TOKEN` | API token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `SELECTEL_BASE_URL` | API endpoint URL | | ||||
| | `SELECTEL_HTTP_TIMEOUT` | API request timeout | | ||||
| | `SELECTEL_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `SELECTEL_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `SELECTEL_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://kb.selectel.com/23136054.html) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/selectel/selectel.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_stackpath.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_stackpath.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Stackpath" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: stackpath | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/stackpath/stackpath.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Stackpath](https://www.stackpath.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `stackpath` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `STACKPATH_CLIENT_ID` | Client ID | | ||||
| | `STACKPATH_CLIENT_SECRET` | Client secret | | ||||
| | `STACKPATH_STACK_ID` | Stack ID | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `STACKPATH_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `STACKPATH_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `STACKPATH_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developer.stackpath.com/en/api/dns/#tag/Zone) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/stackpath/stackpath.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_transip.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_transip.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "TransIP" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: transip | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/transip/transip.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [TransIP](https://www.transip.nl/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `transip` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `TRANSIP_ACCOUNT_NAME` | Account name | | ||||
| | `TRANSIP_PRIVATE_KEY_PATH` | Private key path | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `TRANSIP_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `TRANSIP_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `TRANSIP_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://api.transip.nl/docs/transip.nl/package-Transip.html) | ||||
| - [Go client](https://github.com/transip/gotransip) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/transip/transip.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_vegadns.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_vegadns.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "VegaDNS" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: vegadns | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/vegadns/vegadns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [VegaDNS](https://github.com/shupp/VegaDNS-API). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `vegadns` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `SECRET_VEGADNS_KEY` | API key | | ||||
| | `SECRET_VEGADNS_SECRET` | API secret | | ||||
| | `VEGADNS_URL` | API endpoint URL | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `VEGADNS_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `VEGADNS_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `VEGADNS_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://github.com/shupp/VegaDNS-API) | ||||
| - [Go client](https://github.com/OpenDNS/vegadns2client) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/vegadns/vegadns.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_vscale.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_vscale.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Vscale" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: vscale | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/vscale/vscale.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Vscale](https://vscale.io/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `vscale` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `VSCALE_API_TOKEN` | API token | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `VSCALE_BASE_URL` | API enddpoint URL | | ||||
| | `VSCALE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `VSCALE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `VSCALE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `VSCALE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://developers.vscale.io/documentation/api/v1/#api-Domains_Records) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/vscale/vscale.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										53
									
								
								docs/content/dns/zz_gen_vultr.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								docs/content/dns/zz_gen_vultr.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| --- | ||||
| title: "Vultr" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: vultr | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/vultr/vultr.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Vultr](https://www.vultr.com/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `vultr` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `VULTR_API_KEY` | API key | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `VULTR_HTTP_TIMEOUT` | API request timeout | | ||||
| | `VULTR_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `VULTR_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `VULTR_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://www.vultr.com/api/#dns) | ||||
| - [Go client](https://github.com/JamesClonk/vultr) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/vultr/vultr.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										54
									
								
								docs/content/dns/zz_gen_zoneee.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/content/dns/zz_gen_zoneee.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| --- | ||||
| title: "Zone.ee" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: zoneee | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/zoneee/zoneee.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
|  | ||||
| Configuration for [Zone.ee](https://www.zone.ee/). | ||||
|  | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `zoneee` | ||||
|  | ||||
| {{% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{% /notice %}} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `ZONEEE_API_KEY` | API key | | ||||
| | `ZONEEE_API_USER` | API user | | ||||
|  | ||||
|  | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `ZONEEE_ENDPOINT` | API endpoint URL | | ||||
| | `ZONEEE_HTTP_TIMEOUT` | API request timeout | | ||||
| | `ZONEEE_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `ZONEEE_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| | `ZONEEE_TTL` | The TTL of the TXT record used for the DNS challenge | | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [API documentation](https://api.zone.eu/v2) | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- providers/dns/zoneee/zoneee.toml --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										35
									
								
								docs/content/installation/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								docs/content/installation/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| --- | ||||
| title: "Installation" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| weight: 1 | ||||
| draft: false | ||||
| --- | ||||
|  | ||||
| ## Binaries | ||||
|  | ||||
| To get the binary just download the latest release for your OS/Arch from [the release page](https://github.com/xenolf/lego/releases) and put the binary somewhere convenient. | ||||
| lego does not assume anything about the location you run it from. | ||||
|  | ||||
| ## From Docker | ||||
|  | ||||
| ```bash | ||||
| docker run xenolf/lego -h | ||||
| ``` | ||||
|  | ||||
| ## From package managers | ||||
|  | ||||
| - [ArchLinux (AUR)](https://aur.archlinux.org/packages/lego): | ||||
|  | ||||
| ```bash | ||||
| yay -S lego | ||||
| ``` | ||||
|  | ||||
| **Note**: only the package manager for Arch Linux is officially supported by the lego team. | ||||
|  | ||||
| ## From sources | ||||
|  | ||||
| To install from sources, just run: | ||||
|  | ||||
| ```bash | ||||
| go get -u github.com/xenolf/lego/cmd/lego | ||||
| ``` | ||||
							
								
								
									
										8
									
								
								docs/content/usage/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								docs/content/usage/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| --- | ||||
| title: "Usage" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| weight: 2 | ||||
| --- | ||||
|  | ||||
| {{%children style="h2" description="true" %}} | ||||
							
								
								
									
										94
									
								
								docs/content/usage/cli/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								docs/content/usage/cli/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| --- | ||||
| title: "CLI" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| --- | ||||
|  | ||||
| Lego can be use as a CLI. | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| {{%expand "CLI help" %}} | ||||
| ```slim | ||||
| NAME: | ||||
|    lego - Let's Encrypt client written in Go | ||||
|  | ||||
| USAGE: | ||||
|    lego [global options] command [command options] [arguments...] | ||||
|  | ||||
| COMMANDS: | ||||
|      run      Register an account, then create and install a certificate | ||||
|      revoke   Revoke a certificate | ||||
|      renew    Renew a certificate | ||||
|      dnshelp  Shows additional help for the --dns global option | ||||
|      list     Display certificates and accounts information. | ||||
|      help, h  Shows a list of commands or help for one command | ||||
|  | ||||
| GLOBAL OPTIONS: | ||||
|    --domains value, -d value    Add a domain to the process. Can be specified multiple times. | ||||
|    --server value, -s value     CA hostname (and optionally :port). The server certificate must be trusted in order to avoid further modifications to the client. (default: "https://acme-v02.api.letsencrypt.org/directory") | ||||
|    --accept-tos, -a             By setting this flag to true you indicate that you accept the current Let's Encrypt terms of service. | ||||
|    --email value, -m value      Email used for registration and recovery contact. | ||||
|    --csr value, -c value        Certificate signing request filename, if an external CSR is to be used. | ||||
|    --eab                        Use External Account Binding for account registration. Requires --kid and --hmac. | ||||
|    --kid value                  Key identifier from External CA. Used for External Account Binding. | ||||
|    --hmac value                 MAC key from External CA. Should be in Base64 URL Encoding without padding format. Used for External Account Binding. | ||||
|    --key-type value, -k value   Key type to use for private keys. Supported: rsa2048, rsa4096, rsa8192, ec256, ec384. (default: "rsa2048") | ||||
|    --filename value             (deprecated) Filename of the generated certificate. | ||||
|    --path value                 Directory to use for storing the data. (default: "./.lego") | ||||
|    --http                       Use the HTTP challenge to solve challenges. Can be mixed with other types of challenges. | ||||
|    --http.port value            Set the port and interface to use for HTTP based challenges to listen on.Supported: interface:port or :port. (default: ":80") | ||||
|    --http.webroot value         Set the webroot folder to use for HTTP based challenges to write directly in a file in .well-known/acme-challenge. | ||||
|    --http.memcached-host value  Set the memcached host(s) to use for HTTP based challenges. Challenges will be written to all specified hosts. | ||||
|    --tls                        Use the TLS challenge to solve challenges. Can be mixed with other types of challenges. | ||||
|    --tls.port value             Set the port and interface to use for TLS based challenges to listen on. Supported: interface:port or :port. (default: ":443") | ||||
|    --dns value                  Solve a DNS challenge using the specified provider. Can be mixed with other types of challenges. Run 'lego dnshelp' for help on usage. | ||||
|    --dns.disable-cp             By setting this flag to true, disables the need to wait the propagation of the TXT record to all authoritative name servers. | ||||
|    --dns.resolvers value        Set the resolvers to use for performing recursive DNS queries. Supported: host:port. The default is to use the system resolvers, or Google's DNS resolvers if the system's cannot be determined. | ||||
|    --http-timeout value         Set the HTTP timeout value to a specific value in seconds. (default: 0) | ||||
|    --dns-timeout value          Set the DNS timeout value to a specific value in seconds. Used only when performing authoritative name servers queries. (default: 10) | ||||
|    --pem                        Generate a .pem file by concatenating the .key and .crt files together. | ||||
|    --cert.timeout value         Set the certificate timeout value to a specific value in seconds. Only used when obtaining certificates. (default: 30) | ||||
|    --help, -h                   show help | ||||
|    --version, -v                print the version | ||||
| ``` | ||||
| {{% /expand%}} | ||||
|  | ||||
|  | ||||
| When using the standard `--path` option, all certificates and account configurations are saved to a folder `.lego` in the current working directory. | ||||
|  | ||||
|  | ||||
| ## Let's Encrypt ACME server | ||||
|  | ||||
| lego defaults to communicating with the production Let's Encrypt ACME server. | ||||
| If you'd like to test something without issuing real certificates, consider using the staging endpoint instead: | ||||
|  | ||||
| ```bash | ||||
| lego --server=https://acme-staging-v02.api.letsencrypt.org/directory … | ||||
| ``` | ||||
|  | ||||
| ## Sudo | ||||
|  | ||||
| The CLI does not require root permissions but needs to bind to port 80 and 443 for certain challenges. | ||||
| To run the CLI without sudo, you have four options: | ||||
|  | ||||
| - Use setcap 'cap_net_bind_service=+ep' /path/to/program | ||||
| - Pass the `--http.port` or/and the `--tls.port` option and specify a custom port to bind to. In this case you have to forward port 80/443 to these custom ports (see [Port Usage](usage/cli#port-usage)). | ||||
| - Pass the `--http.webroot` option and specify the path to your webroot folder. In this case the challenge will be written in a file in `.well-known/acme-challenge/` inside your webroot. | ||||
| - Pass the `--dns` option and specify a DNS provider. | ||||
|  | ||||
| ## Port Usage | ||||
|  | ||||
| By default lego assumes it is able to bind to ports 80 and 443 to solve challenges. | ||||
| If this is not possible in your environment, you can use the `--http.port` and `--tls.port` options to instruct | ||||
| lego to listen on that interface:port for any incoming challenges. | ||||
|  | ||||
| If you are using this option, make sure you proxy all of the following traffic to these ports. | ||||
|  | ||||
| **HTTP Port:** All plaintext HTTP requests to port **80** which begin with a request path of `/.well-known/acme-challenge/` for the HTTP challenge. | ||||
|  | ||||
| **TLS Port:** All TLS handshakes on port **443** for the TLS-ALPN challenge. | ||||
|  | ||||
| This traffic redirection is only needed as long as lego solves challenges. As soon as you have received your certificates you can deactivate the forwarding. | ||||
							
								
								
									
										48
									
								
								docs/content/usage/cli/examples.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docs/content/usage/cli/examples.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| --- | ||||
| title: "Examples" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| --- | ||||
|  | ||||
| ## CLI Examples | ||||
|  | ||||
| Assumes the `lego` binary has permission to bind to ports 80 and 443. | ||||
| You can get a pre-built binary from the [releases](https://github.com/xenolf/lego/releases) page. | ||||
| If your environment does not allow you to bind to these ports, please read [Port Usage](usage/cli#port-usage). | ||||
|  | ||||
| ### Obtain a certificate | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --domains="example.com" --http run | ||||
| ``` | ||||
|  | ||||
| (Find your certificate in the `.lego` folder of current working directory.) | ||||
|  | ||||
| ### To renew the certificate | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --domains="example.com" --http renew | ||||
| ``` | ||||
|  | ||||
| ### To renew the certificate only if it expires within 45 days | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --domains="example.com" --http renew --days 45 | ||||
| ``` | ||||
|  | ||||
| ### Obtain a certificate using the DNS challenge | ||||
|  | ||||
| ```bash | ||||
| AWS_REGION=us-east-1 \ | ||||
| AWS_ACCESS_KEY_ID=my_id \ | ||||
| AWS_SECRET_ACCESS_KEY=my_key \ | ||||
| lego --email="foo@bar.com" --domains="example.com" --dns="route53" run | ||||
| ``` | ||||
|  | ||||
| ### Obtain a certificate given a certificate signing request (CSR) generated by something else | ||||
|  | ||||
| ```bash | ||||
| lego --email="foo@bar.com" --http --csr=/path/to/csr.pem run | ||||
| ``` | ||||
|  | ||||
| (lego will infer the domains to be validated based on the contents of the CSR, so make sure the CSR's Common Name and optional SubjectAltNames are set correctly.) | ||||
							
								
								
									
										103
									
								
								docs/content/usage/library/Writing-a-Challenge-Solver.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								docs/content/usage/library/Writing-a-Challenge-Solver.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,103 @@ | ||||
| --- | ||||
| title: "Writing a Challenge Solver" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| --- | ||||
|  | ||||
| Lego can solve multiple ACME challenge types out of the box, but sometimes you have custom requirements. | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| For example, you may want to write a solver for the DNS-01 challenge that works with a different DNS provider (lego already supports CloudFlare, AWS, DigitalOcean, and others). | ||||
|  | ||||
| The DNS-01 challenge is advantageous when other challenge types are impossible. | ||||
| For example, the HTTP-01 challenge doesn't work well behind a load balancer or CDN and the TLS-ALPN-01 challenge breaks behind TLS termination. | ||||
|  | ||||
| But even if using HTTP-01 or TLS-ALPN-01 challenges, you may have specific needs that lego does not consider by default. | ||||
|  | ||||
| You can write something called a `challenge.Provider` that implements [this interface](https://godoc.org/github.com/xenolf/lego/challenge#Provider): | ||||
|  | ||||
| ```go | ||||
| type Provider interface { | ||||
| 	Present(domain, token, keyAuth string) error | ||||
| 	CleanUp(domain, token, keyAuth string) error | ||||
| } | ||||
| ``` | ||||
|  | ||||
| This provides the means to solve a challenge. | ||||
| First you present a token to the ACME server in a way defined by the challenge type you're solving for, then you "clean up" after the challenge finishes. | ||||
|  | ||||
| ## Writing a challenge.Provider | ||||
|  | ||||
| Pretend we want to write our own DNS-01 challenge provider (other challenge types have different requirements but the same principles apply). | ||||
|  | ||||
| This will let us prove ownership of domain names parked at a new, imaginary DNS service called BestDNS without having to start our own HTTP server. | ||||
| BestDNS has an API that, given an authentication token, allows us to manipulate DNS records. | ||||
|  | ||||
| This simplistic example has only one field to store the auth token, but in reality you may need to keep more state. | ||||
|  | ||||
| ```go | ||||
| type DNSProviderBestDNS struct { | ||||
| 	apiAuthToken string | ||||
| } | ||||
| ``` | ||||
|  | ||||
| We should provide a constructor that returns a *pointer* to the `struct`. | ||||
| This is important in case we need to maintain state in the `struct`. | ||||
|  | ||||
| ```go | ||||
| func NewDNSProviderBestDNS(apiAuthToken string) (*DNSProviderBestDNS, error) { | ||||
| 	return &DNSProviderBestDNS{apiAuthToken: apiAuthToken}, nil | ||||
| } | ||||
| ``` | ||||
|  | ||||
| Now we need to implement the interface. | ||||
| We'll start with the `Present` method. | ||||
| You'll be passed the `domain` name for which you're proving ownership, a `token`, and a `keyAuth` string. | ||||
| How your provider uses `token` and `keyAuth`, or if you even use them at all, depends on the challenge type. | ||||
| For DNS-01, we'll just use `domain` and `keyAuth`. | ||||
|  | ||||
| ```go | ||||
| func (d *DNSProviderBestDNS) Present(domain, token, keyAuth string) error { | ||||
|     fqdn, value := dns01.GetRecord(domain, keyAuth) | ||||
|     // make API request to set a TXT record on fqdn with value and ttl | ||||
|     return nil | ||||
| } | ||||
| ``` | ||||
|  | ||||
| After calling `dns01.GetRecord(domain, keyAuth)`, we now have the information we need to make our API request and set the TXT record: | ||||
| - `fqdn` is the fully qualified domain name on which to set the TXT record. | ||||
| - `value` is the record's value to set on the record. | ||||
|  | ||||
| So then you make an API request to the DNS service according to their docs. | ||||
| Once the TXT record is set on the domain, you may return and the challenge will proceed. | ||||
|  | ||||
| The ACME server will then verify that you did what it required you to do, and once it is finished, lego will call your `CleanUp` method. | ||||
| In our case, we want to remove the TXT record we just created. | ||||
|  | ||||
| ```go | ||||
| func (d *DNSProviderBestDNS) CleanUp(domain, token, keyAuth string) error { | ||||
|     // clean up any state you created in Present, like removing the TXT record | ||||
| } | ||||
| ``` | ||||
|  | ||||
| In our case, we'd just make another API request to have the DNS record deleted; no need to keep it and clutter the zone file. | ||||
|  | ||||
| ## Using your new challenge.Provider | ||||
|  | ||||
| To use your new challenge provider, call [`client.Challenge.SetDNS01Provider`](https://godoc.org/github.com/xenolf/lego/challenge/resolver#SolverManager.SetDNS01Provider) to tell lego, "For this challenge, use this provider". | ||||
| In our case: | ||||
|  | ||||
| ```go | ||||
| bestDNS, err := NewDNSProviderBestDNS("my-auth-token") | ||||
| if err != nil { | ||||
|     return err | ||||
| } | ||||
|  | ||||
| client.Challenge.SetDNS01Provider(bestDNS) | ||||
| ``` | ||||
|  | ||||
| Then, when this client tries to solve the DNS-01 challenge, it will use our new provider, which sets TXT records on a domain name hosted by BestDNS. | ||||
|  | ||||
| That's really all there is to it. | ||||
| Go make awesome things! | ||||
							
								
								
									
										115
									
								
								docs/content/usage/library/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								docs/content/usage/library/_index.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| --- | ||||
| title: "Library" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| --- | ||||
|  | ||||
| Lego can be use as a Go Library. | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| ## GoDoc | ||||
|  | ||||
| The GoDoc can be found here: [GoDoc](https://godoc.org/github.com/xenolf/lego/acme) | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| A valid, but bare-bones example use of the acme package: | ||||
|  | ||||
| ```go | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"crypto" | ||||
| 	"crypto/ecdsa" | ||||
| 	"crypto/elliptic" | ||||
| 	"crypto/rand" | ||||
| 	"fmt" | ||||
| 	"log" | ||||
|  | ||||
| 	"github.com/xenolf/lego/certcrypto" | ||||
| 	"github.com/xenolf/lego/certificate" | ||||
| 	"github.com/xenolf/lego/challenge/http01" | ||||
| 	"github.com/xenolf/lego/challenge/tlsalpn01" | ||||
| 	"github.com/xenolf/lego/lego" | ||||
| 	"github.com/xenolf/lego/registration" | ||||
| ) | ||||
|  | ||||
| // You'll need a user or account type that implements acme.User | ||||
| type MyUser struct { | ||||
| 	Email        string | ||||
| 	Registration *registration.Resource | ||||
| 	key          crypto.PrivateKey | ||||
| } | ||||
|  | ||||
| func (u *MyUser) GetEmail() string { | ||||
| 	return u.Email | ||||
| } | ||||
| func (u MyUser) GetRegistration() *registration.Resource { | ||||
| 	return u.Registration | ||||
| } | ||||
| func (u *MyUser) GetPrivateKey() crypto.PrivateKey { | ||||
| 	return u.key | ||||
| } | ||||
|  | ||||
| func main() { | ||||
|  | ||||
| 	// Create a user. New accounts need an email and private key to start. | ||||
| 	privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	myUser := MyUser{ | ||||
| 		Email: "you@yours.com", | ||||
| 		key:   privateKey, | ||||
| 	} | ||||
|  | ||||
| 	config := lego.NewConfig(&myUser) | ||||
|  | ||||
| 	// This CA URL is configured for a local dev instance of Boulder running in Docker in a VM. | ||||
| 	config.CADirURL = "http://192.168.99.100:4000/directory" | ||||
| 	config.Certificate.KeyType = certcrypto.RSA2048 | ||||
|  | ||||
| 	// A client facilitates communication with the CA server. | ||||
| 	client, err := lego.NewClient(config) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// We specify an http port of 5002 and an tls port of 5001 on all interfaces | ||||
| 	// because we aren't running as root and can't bind a listener to port 80 and 443 | ||||
| 	// (used later when we attempt to pass challenges). Keep in mind that you still | ||||
| 	// need to proxy challenge traffic to port 5002 and 5001. | ||||
| 	err = client.Challenge.SetHTTP01Provider(http01.NewProviderServer("", "5002")) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	err = client.Challenge.SetTLSALPN01Provider(tlsalpn01.NewProviderServer("", "5001")) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// New users will need to register | ||||
| 	reg, err := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true}) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| 	myUser.Registration = reg | ||||
|  | ||||
| 	request := certificate.ObtainRequest{ | ||||
| 		Domains: []string{"mydomain.com"}, | ||||
| 		Bundle:  true, | ||||
| 	} | ||||
| 	certificates, err := client.Certificate.Obtain(request) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// Each certificate comes back with the cert bytes, the bytes of the client's | ||||
| 	// private key, and a certificate URL. SAVE THESE TO DISK. | ||||
| 	fmt.Printf("%#v\n", certificates) | ||||
|  | ||||
| 	// ... all done. | ||||
| } | ||||
| ``` | ||||
							
								
								
									
										1
									
								
								docs/layouts/partials/logo.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docs/layouts/partials/logo.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| <a id="logo" href="/lego"><img src="/lego/images/logo-white.png"></a> | ||||
							
								
								
									
										
											BIN
										
									
								
								docs/static/images/logo-white.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/static/images/logo-white.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 15 KiB | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/images/logo.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/static/images/logo.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 9.8 KiB | 
							
								
								
									
										53
									
								
								internal/dnsdocs/dns.go.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								internal/dnsdocs/dns.go.tmpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| package cmd | ||||
|  | ||||
| // CODE GENERATED AUTOMATICALLY | ||||
| // THIS FILE MUST NOT BE EDITED BY HAND | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"strings" | ||||
| 	"text/tabwriter" | ||||
|  | ||||
| 	"github.com/xenolf/lego/log" | ||||
| ) | ||||
|  | ||||
| func allDNSCodes() string { | ||||
| 	return strings.Join([]string{ | ||||
| {{- range $provider := .Providers }} | ||||
| 		"{{ $provider.Code }}", | ||||
| {{- end}} | ||||
| 	}, ", ") | ||||
| } | ||||
|  | ||||
| func displayDNSHelp(name string) { | ||||
| 	w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '\t', 0) | ||||
| 	switch name { | ||||
| {{ range $provider := .Providers }} | ||||
| 	case "{{ $provider.Code }}": | ||||
| 		// generated from: {{ .GeneratedFrom }} | ||||
| 		fmt.Fprintln(w, `Configuration for {{ $provider.Name }}.`) | ||||
| 		fmt.Fprintln(w, `Code: '{{ $provider.Code }}'`) | ||||
| 		fmt.Fprintln(w) | ||||
| {{if $provider.Configuration }}{{if $provider.Configuration.Credentials }} | ||||
| 		fmt.Fprintln(w, `Credentials:`) | ||||
| {{- range $k, $v := $provider.Configuration.Credentials }} | ||||
| 		fmt.Fprintln(w,`	- "{{ $k }}": {{ safe $v }}`) | ||||
| {{- end}} | ||||
| 		fmt.Fprintln(w) | ||||
| {{end}}{{if $provider.Configuration.Additional }} | ||||
| 		fmt.Fprintln(w, `Additional Configuration:`) | ||||
| {{- range $k, $v := $provider.Configuration.Additional }} | ||||
| 		fmt.Fprintln(w, `	- "{{ $k }}": {{ safe $v }}`) | ||||
| {{- end}} | ||||
| {{end}}{{end}} | ||||
| 		fmt.Fprintln(w) | ||||
| 		fmt.Fprintln(w, `More information: https://xenolf.github.io/lego/dns/{{ $provider.Code }}`) | ||||
| {{end}} | ||||
|     case "manual": | ||||
| 		fmt.Fprintln(w, `Solving the DNS-01 challenge using CLI prompt.`) | ||||
| 	default: | ||||
| 		log.Fatalf("%q is not yet supported.", name) | ||||
| 	} | ||||
| 	w.Flush() | ||||
| } | ||||
							
								
								
									
										73
									
								
								internal/dnsdocs/dns.md.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								internal/dnsdocs/dns.md.tmpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | ||||
| --- | ||||
| title: "{{ .Name }}" | ||||
| date: 2019-03-03T16:39:46+01:00 | ||||
| draft: false | ||||
| slug: {{ .Code }} | ||||
| --- | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- {{ .GeneratedFrom }} --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
|  | ||||
| {{if .Description -}} | ||||
| {{ .Description }} | ||||
| {{else}} | ||||
| Configuration for [{{ .Name }}]({{ .URL }}). | ||||
| {{end}} | ||||
|  | ||||
| <!--more--> | ||||
|  | ||||
| - Code: `{{ .Code }}` | ||||
| {{if .Example }} | ||||
| Here is an example bash command using the {{ .Name }} provider: | ||||
|  | ||||
| ```bash | ||||
| {{ .Example -}} | ||||
| ``` | ||||
| {{else}} | ||||
| {{ "{{" }}% notice note %}} | ||||
| _Please contribute by adding a CLI example._ | ||||
| {{ "{{" }}% /notice %}} | ||||
| {{end}} | ||||
|  | ||||
| {{if .Configuration }} | ||||
| {{if .Configuration.Credentials }} | ||||
| ## Credentials | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| {{- range $k, $v := .Configuration.Credentials }} | ||||
| | `{{$k}}` | {{$v}} | | ||||
| {{- end}} | ||||
|  | ||||
| {{- end}} | ||||
|  | ||||
| {{if .Configuration.Additional }} | ||||
| ## Additional Configuration | ||||
|  | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| {{- range $k, $v := .Configuration.Additional }} | ||||
| | `{{$k}}` | {{$v}} | | ||||
| {{- end}} | ||||
|  | ||||
| {{- end}} | ||||
| {{- end}} | ||||
|  | ||||
| {{ .Additional }} | ||||
|  | ||||
| {{if .Links }} | ||||
| ## More information | ||||
|  | ||||
| {{if .Links.API -}} | ||||
| - [API documentation]({{ .Links.API }}) | ||||
| {{- end}} | ||||
| {{- if .Links.GoClient }} | ||||
| - [Go client]({{ .Links.GoClient }}) | ||||
| {{- end}} | ||||
|  | ||||
| {{- end}} | ||||
|  | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
| <!-- {{ .GeneratedFrom }} --> | ||||
| <!-- THIS DOCUMENTATION IS AUTO-GENERATED. PLEASE DO NOT EDIT. --> | ||||
							
								
								
									
										136
									
								
								internal/dnsdocs/generator.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								internal/dnsdocs/generator.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,136 @@ | ||||
| package main | ||||
|  | ||||
| //go:generate go run . | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"go/format" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"path/filepath" | ||||
| 	"strings" | ||||
| 	"text/template" | ||||
|  | ||||
| 	"github.com/BurntSushi/toml" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	root        = "../../" | ||||
| 	dnsPackage  = root + "providers/dns" | ||||
| 	mdTemplate  = root + "internal/dnsdocs/dns.md.tmpl" | ||||
| 	cliTemplate = root + "internal/dnsdocs/dns.go.tmpl" | ||||
| 	cliOutput   = root + "cmd/zz_gen_cmd_dnshelp.go" | ||||
| 	docOutput   = root + "docs/content/dns" | ||||
| ) | ||||
|  | ||||
| type Model struct { | ||||
| 	Name          string         // Real name of the DNS provider | ||||
| 	Code          string         // DNS code | ||||
| 	URL           string         // DNS provider URL | ||||
| 	Description   string         // Provider summary | ||||
| 	Example       string         // CLI example | ||||
| 	Configuration *Configuration // Environment variables | ||||
| 	Links         *Links         // Links | ||||
| 	Additional    string         // Extra documentation | ||||
| 	GeneratedFrom string         // Source file | ||||
| } | ||||
|  | ||||
| type Configuration struct { | ||||
| 	Credentials map[string]string | ||||
| 	Additional  map[string]string | ||||
| } | ||||
|  | ||||
| type Links struct { | ||||
| 	API      string | ||||
| 	GoClient string | ||||
| } | ||||
|  | ||||
| type Providers struct { | ||||
| 	Providers []Model | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	models := &Providers{} | ||||
|  | ||||
| 	err := filepath.Walk(dnsPackage, walker(models)) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	// generate CLI help | ||||
| 	err = generateCLIHelp(models) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func walker(prs *Providers) func(string, os.FileInfo, error) error { | ||||
| 	return func(path string, _ os.FileInfo, err error) error { | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
|  | ||||
| 		if filepath.Ext(path) == ".toml" { | ||||
| 			m := Model{} | ||||
|  | ||||
| 			m.GeneratedFrom, err = filepath.Rel(root, path) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
|  | ||||
| 			_, err := toml.DecodeFile(path, &m) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
|  | ||||
| 			prs.Providers = append(prs.Providers, m) | ||||
|  | ||||
| 			// generate documentation | ||||
| 			return generateDocumentation(m) | ||||
| 		} | ||||
|  | ||||
| 		return nil | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func generateDocumentation(m Model) error { | ||||
| 	filename := filepath.Join(docOutput, "zz_gen_"+m.Code+".md") | ||||
|  | ||||
| 	file, err := os.Create(filename) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	return template.Must(template.ParseFiles(mdTemplate)).Execute(file, m) | ||||
| } | ||||
|  | ||||
| func generateCLIHelp(models *Providers) error { | ||||
| 	filename := filepath.Join(cliOutput) | ||||
|  | ||||
| 	file, err := os.Create(filename) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	tlt := template.New(filepath.Base(cliTemplate)).Funcs(map[string]interface{}{ | ||||
| 		"safe": func(src string) string { | ||||
| 			return strings.ReplaceAll(src, "`", "'") | ||||
| 		}, | ||||
| 	}) | ||||
|  | ||||
| 	b := &bytes.Buffer{} | ||||
| 	err = template.Must(tlt.ParseFiles(cliTemplate)).Execute(b, models) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// gofmt | ||||
| 	source, err := format.Source(b.Bytes()) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	_, err = file.Write(source) | ||||
| 	return err | ||||
|  | ||||
| } | ||||
							
								
								
									
										15
									
								
								providers/dns/acmedns/acmedns.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								providers/dns/acmedns/acmedns.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| Name = "Joohoi's ACME-DNS" | ||||
| Description = '''''' | ||||
| URL = "https://github.com/joohoi/acme-dns" | ||||
| Code = "acme-dns" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     ACME_DNS_API_BASE  = "The ACME-DNS API address" | ||||
|     ACME_DNS_STORAGE_PATH = "The ACME-DNS JSON account data file. A per-domain account will be registered/persisted to this file and used for TXT updates." | ||||
|  | ||||
| [Links] | ||||
|   API = "https://github.com/joohoi/acme-dns#api" | ||||
|   GoClient = "https://github.com/cpu/goacmedns" | ||||
							
								
								
									
										20
									
								
								providers/dns/alidns/alidns.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								providers/dns/alidns/alidns.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| Name = "Alibaba Cloud DNS" | ||||
| Description = '''''' | ||||
| URL = "https://www.alibabacloud.com/product/dns" | ||||
| Code = "alidns" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     ALICLOUD_ACCESS_KEY = "Access key ID" | ||||
|     ALICLOUD_SECRET_KEY = "Access Key secret" | ||||
|   [Configuration.Additional] | ||||
|     ALICLOUD_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     ALICLOUD_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     ALICLOUD_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     ALICLOUD_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://www.alibabacloud.com/help/doc-detail/42875.htm" | ||||
|   GoClient = "https://github.com/aliyun/alibaba-cloud-sdk-go" | ||||
							
								
								
									
										20
									
								
								providers/dns/auroradns/auroradns.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								providers/dns/auroradns/auroradns.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| Name = "Aurora DNS" | ||||
| Description = '''''' | ||||
| URL = "https://www.pcextreme.com/aurora/dns" | ||||
| Code = "auroradns" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     AURORA_USER_ID = "User ID" | ||||
|     AURORA_KEY = "User API key" | ||||
|     AURORA_ENDPOINT = "API endpoint URL" | ||||
|   [Configuration.Additional] | ||||
|     AURORA_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     AURORA_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     AURORA_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://libcloud.readthedocs.io/en/latest/dns/drivers/auroradns.html#api-docs" | ||||
|   GoClient = "https://github.com/nrdcg/auroradns" | ||||
							
								
								
									
										24
									
								
								providers/dns/azure/azure.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								providers/dns/azure/azure.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| Name = "Azure" | ||||
| Description = '''''' | ||||
| URL = "https://azure.microsoft.com/services/dns/" | ||||
| Code = "azure" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     AZURE_CLIENT_ID = "Client ID" | ||||
|     AZURE_CLIENT_SECRET = "Client secret" | ||||
|     AZURE_SUBSCRIPTION_ID = "Subscription ID" | ||||
|     AZURE_TENANT_ID = "Tenant ID" | ||||
|     AZURE_RESOURCE_GROUP = "Resource group" | ||||
|     'instance metadata service' = "If the credentials are **not** set via the environment, then it will attempt to get a bearer token via the [instance metadata service](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service)." | ||||
|   [Configuration.Additional] | ||||
|     AZURE_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     AZURE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     AZURE_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     AZURE_METADATA_ENDPOINT = "Metadata Service endpoint URL" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://docs.microsoft.com/en-us/go/azure/" | ||||
|   GoClient = "https://github.com/Azure/azure-sdk-for-go" | ||||
							
								
								
									
										19
									
								
								providers/dns/bluecat/bluecat.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								providers/dns/bluecat/bluecat.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Name = "Bluecat" | ||||
| Description = '''''' | ||||
| URL = "https://www.bluecatnetworks.com" | ||||
| Code = "bluecat" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     BLUECAT_SERVER_URL = "The server URL, should have scheme, hostname, and port (if required) of the authoritative Bluecat BAM serve" | ||||
|     BLUECAT_USER_NAME = "API username" | ||||
|     BLUECAT_PASSWORD = "API password" | ||||
|     BLUECAT_CONFIG_NAME = "Configuration name" | ||||
|     BLUECAT_DNS_VIEW = "External DNS View Name" | ||||
|   [Configuration.Additional] | ||||
|     BLUECAT_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     BLUECAT_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     BLUECAT_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     BLUECAT_HTTP_TIMEOUT = "API request timeout" | ||||
							
								
								
									
										24
									
								
								providers/dns/cloudflare/cloudflare.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								providers/dns/cloudflare/cloudflare.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| Name = "Cloudflare" | ||||
| Description = '''''' | ||||
| URL = "https://www.cloudflare.com/dns/" | ||||
| Code = "cloudflare" | ||||
|  | ||||
| Example = ''' | ||||
| CLOUDFLARE_EMAIL=foo@bar.com \ | ||||
| CLOUDFLARE_API_KEY=b9841238feb177a84330febba8a83208921177bffe733 \ | ||||
| lego --dns cloudflare --domains my.domain.com --email my@email.com run | ||||
| ''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     CLOUDFLARE_EMAIL = "Account email" | ||||
|     CLOUDFLARE_API_KEY = "API key" | ||||
|   [Configuration.Additional] | ||||
|     CLOUDFLARE_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     CLOUDFLARE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     CLOUDFLARE_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     CLOUDFLARE_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://api.cloudflare.com/" | ||||
|   GoClient = "https://github.com/cloudflare/cloudflare-go" | ||||
							
								
								
									
										19
									
								
								providers/dns/cloudns/cloudns.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								providers/dns/cloudns/cloudns.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Name = "ClouDNS" | ||||
| Description = '''''' | ||||
| URL = "https://www.cloudns.net" | ||||
| Code = "cloudns" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     CLOUDNS_AUTH_ID = "The API user ID" | ||||
|     CLOUDNS_AUTH_PASSWORD = "The password for API user ID" | ||||
|   [Configuration.Additional] | ||||
|     CLOUDNS_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     CLOUDNS_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     CLOUDNS_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     CLOUDNS_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://www.cloudns.net/wiki/article/42/" | ||||
							
								
								
									
										19
									
								
								providers/dns/cloudxns/cloudxns.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								providers/dns/cloudxns/cloudxns.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Name = "CloudXNS" | ||||
| Description = """""" | ||||
| URL = "https://www.cloudxns.net/" | ||||
| Code = "cloudxns" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     CLOUDXNS_API_KEY = "The API key" | ||||
|     CLOUDXNS_SECRET_KEY = "THe API secret key" | ||||
|   [Configuration.Additional] | ||||
|     CLOUDXNS_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     CLOUDXNS_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     CLOUDXNS_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     CLOUDXNS_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://www.cloudxns.net/Public/Doc/CloudXNS_api2.0_doc_zh-cn.zip" | ||||
							
								
								
									
										21
									
								
								providers/dns/conoha/conoha.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								providers/dns/conoha/conoha.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| Name = "ConoHa" | ||||
| Description = '''''' | ||||
| URL = "https://www.conoha.jp/" | ||||
| Code = "conoha" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     CONOHA_TENANT_ID = "Tenant ID" | ||||
|     CONOHA_API_USERNAME = "The API username" | ||||
|     CONOHA_API_PASSWORD = "The API password" | ||||
|   [Configuration.Additional] | ||||
|     CONOHA_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     CONOHA_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     CONOHA_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     CONOHA_HTTP_TIMEOUT = "API request timeout" | ||||
|     CONOHA_REGION = "The region" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://www.conoha.jp/docs/" | ||||
							
								
								
									
										22
									
								
								providers/dns/designate/designate.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								providers/dns/designate/designate.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| Name = "Designate DNSaaS for Openstack" | ||||
| Description = '''''' | ||||
| URL = "https://docs.openstack.org/designate/latest/" | ||||
| Code = "designate" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     OS_AUTH_URL = "Identity endpoint URL" | ||||
|     OS_USERNAME = "Username" | ||||
|     OS_PASSWORD = "Password" | ||||
|     OS_TENANT_NAME = "Tenant name" | ||||
|     OS_REGION_NAME = "Region name" | ||||
|   [Configuration.Additional] | ||||
|     DESIGNATE_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DESIGNATE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DESIGNATE_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://docs.openstack.org/designate/latest/" | ||||
|   GoClient = "https://godoc.org/github.com/gophercloud/gophercloud/openstack/dns/v2" | ||||
							
								
								
									
										18
									
								
								providers/dns/digitalocean/digitalocean.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								providers/dns/digitalocean/digitalocean.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| Name = "Digital Ocean" | ||||
| Description = '''''' | ||||
| URL = "https://www.digitalocean.com/docs/networking/dns/" | ||||
| Code = "digitalocean" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DO_AUTH_TOKEN = "Authentication token" | ||||
|   [Configuration.Additional] | ||||
|     DO_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DO_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DO_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     DO_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://developers.digitalocean.com/documentation/v2/#domain-records" | ||||
							
								
								
									
										19
									
								
								providers/dns/dnsimple/dnsimple.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								providers/dns/dnsimple/dnsimple.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Name = "DNSimple" | ||||
| Description = '''''' | ||||
| URL = "https://dnsimple.com/" | ||||
| Code = "dnsimple" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DNSIMPLE_OAUTH_TOKEN = "OAuth token" | ||||
|     DNSIMPLE_BASE_URL = "API endpoint URL" | ||||
|   [Configuration.Additional] | ||||
|     DNSIMPLE_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DNSIMPLE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DNSIMPLE_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://developer.dnsimple.com/v2/" | ||||
|   GoClient = "https://github.com/dnsimple/dnsimple-go" | ||||
							
								
								
									
										20
									
								
								providers/dns/dnsmadeeasy/dnsmadeeasy.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								providers/dns/dnsmadeeasy/dnsmadeeasy.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| Name = "DNS Made Easy" | ||||
| Description = '''''' | ||||
| URL = "https://dnsmadeeasy.com/" | ||||
| Code = "dnsmadeeasy" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DNSMADEEASY_API_KEY = "The API key" | ||||
|     DNSMADEEASY_API_SECRET = "The API Secret key" | ||||
|   [Configuration.Additional] | ||||
|     DNSMADEEASY_SANDBOX = "Activate the sandbox (boolean)" | ||||
|     DNSMADEEASY_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DNSMADEEASY_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DNSMADEEASY_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     DNSMADEEASY_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://api-docs.dnsmadeeasy.com/" | ||||
							
								
								
									
										19
									
								
								providers/dns/dnspod/dnspod.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								providers/dns/dnspod/dnspod.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Name = "DNSPod" | ||||
| Description = '''''' | ||||
| URL = "http://www.dnspod.com/" | ||||
| Code = "dnspod" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DNSPOD_API_KEY = "The user token" | ||||
|   [Configuration.Additional] | ||||
|     DNSPOD_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DNSPOD_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DNSPOD_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     DNSPOD_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://www.dnspod.com/docs/index.html" | ||||
|   GoClient = "https://github.com/decker502/dnspod-go" | ||||
							
								
								
									
										18
									
								
								providers/dns/dreamhost/dreamhost.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								providers/dns/dreamhost/dreamhost.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| Name = "DreamHost" | ||||
| Description = '''''' | ||||
| URL = "https://www.dreamhost.com" | ||||
| Code = "dreamhost" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DREAMHOST_API_KEY = "The API key" | ||||
|   [Configuration.Additional] | ||||
|     DREAMHOST_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DREAMHOST_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DREAMHOST_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     DREAMHOST_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://help.dreamhost.com/hc/en-us/articles/217560167-API_overview" | ||||
							
								
								
									
										19
									
								
								providers/dns/duckdns/duckdns.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								providers/dns/duckdns/duckdns.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Name = "Duck DNS" | ||||
| Description = '''''' | ||||
| URL = "https://www.duckdns.org/" | ||||
| Code = "duckdns" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DUCKDNS_TOKEN = "Account token" | ||||
|   [Configuration.Additional] | ||||
|     DUCKDNS_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DUCKDNS_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DUCKDNS_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     DUCKDNS_HTTP_TIMEOUT = "API request timeout" | ||||
|     DUCKDNS_SEQUENCE_INTERVAL = "Interval between iteration" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://www.duckdns.org/spec.jsp" | ||||
							
								
								
									
										20
									
								
								providers/dns/dyn/dyn.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								providers/dns/dyn/dyn.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| Name = "Dyn" | ||||
| Description = '''''' | ||||
| URL = "https://dyn.com/" | ||||
| Code = "dyn" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     DYN_CUSTOMER_NAME = "Customer name" | ||||
|     DYN_USER_NAME = "User name" | ||||
|     DYN_PASSWORD = "Paswword" | ||||
|   [Configuration.Additional] | ||||
|     DYN_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     DYN_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     DYN_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     DYN_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://help.dyn.com/rest/" | ||||
| @@ -1,6 +1,30 @@ | ||||
| # Execute an external program | ||||
| Name = "External program" | ||||
| Description = "Solving the DNS-01 challenge using an external program." | ||||
| URL = "/dns/exec" | ||||
| Code = "exec" | ||||
| 
 | ||||
| Example = ''' | ||||
| EXEC_PATH=/the/path/to/myscript.sh \ | ||||
| lego --dns exec --domains my.domain.com --email my@email.com run | ||||
| ''' | ||||
| 
 | ||||
| Additional = ''' | ||||
| 
 | ||||
| ## Base Configuration | ||||
| 
 | ||||
| | Environment Variable Name | Description | | ||||
| |-----------------------|-------------| | ||||
| | `EXEC_MODE` | `RAW`, none | | ||||
| | `EXEC_PATH` | TODO | | ||||
| 
 | ||||
| 
 | ||||
| ## Additional Configuration | ||||
| 
 | ||||
| | Environment Variable Name | Description | | ||||
| |--------------------------------|-------------| | ||||
| | `EXEC_POLLING_INTERVAL` | Time between DNS propagation check | | ||||
| | `EXEC_PROPAGATION_TIMEOUT` | Maximum waiting time for DNS propagation | | ||||
| 
 | ||||
| Solving the DNS-01 challenge using an external program. | ||||
| 
 | ||||
| ## Description | ||||
| 
 | ||||
| @@ -48,6 +72,12 @@ It will then call the program `./update-dns.sh` like this: | ||||
| 
 | ||||
| ## Commands | ||||
| 
 | ||||
| {{% notice note %}} | ||||
| The `--` is because the token MAY start with a `-`, and the called program may try and interpret a `-` as indicating a flag. | ||||
| In the case of urfave, which is commonly used, | ||||
| you can use the `--` delimiter to specify the start of positional arguments, and handle such a string safely. | ||||
| {{% /notice %}} | ||||
| 
 | ||||
| ### Present | ||||
| 
 | ||||
| | Mode    | Command                                            | | ||||
| @@ -77,10 +107,4 @@ the default display propagation timeout and polling interval are used. | ||||
| | default | `myprogram timeout`                                | | ||||
| | `RAW`   | `myprogram timeout`                                | | ||||
| 
 | ||||
| 
 | ||||
| ## NOTE | ||||
| 
 | ||||
| The `--` is because the token MAY start with a `-`, and the called program may try and interpret a - as indicating a flag. | ||||
| 
 | ||||
| In the case of urfave, which is commonly used, | ||||
| you can use the `--` delimiter to specify the start of positional arguments, and handle such a string safely. | ||||
| ''' | ||||
							
								
								
									
										21
									
								
								providers/dns/exoscale/exoscale.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								providers/dns/exoscale/exoscale.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| Name = "Exoscale" | ||||
| Description = '''''' | ||||
| URL = "https://www.exoscale.com/" | ||||
| Code = "exoscale" | ||||
|  | ||||
| Example = '''''' | ||||
|  | ||||
| [Configuration] | ||||
|   [Configuration.Credentials] | ||||
|     EXOSCALE_API_KEY = "API key" | ||||
|     EXOSCALE_API_SECRET = "API secret" | ||||
|     EXOSCALE_ENDPOINT = "API endpoint URL" | ||||
|   [Configuration.Additional] | ||||
|     EXOSCALE_POLLING_INTERVAL = "Time between DNS propagation check" | ||||
|     EXOSCALE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation" | ||||
|     EXOSCALE_TTL = "The TTL of the TXT record used for the DNS challenge" | ||||
|     EXOSCALE_HTTP_TIMEOUT = "API request timeout" | ||||
|  | ||||
| [Links] | ||||
|   API = "https://community.exoscale.com/documentation/dns/api/" | ||||
|   GoClient = "https://github.com/exoscale/egoscale" | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user