exec

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2018 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package exec implements a manual DNS provider which runs a program for adding/removing the DNS record.

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, the value for the record and the TTL.

For example, requesting a certificate for the domain 'foo.example.com' can be achieved by calling lego as follows:

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:

./update-dns.sh "present" "_acme-challenge.foo.example.com." "MsijOYZxqyjGnFGwhjrhfg-Xgbl5r68WPda0J9EgqqI" "120"

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`:

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:

./update-dns.sh "present" "foo.example.com." "--" "some-token" "KxAy-J3NwUmg9ZQuM-gP_Mq1nStaYSaP9tYQs5_-YsE.ksT-qywTd8058G-SHHWA3RAN72Pr0yWtPYmmY5UBpQ8"

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.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config added in v1.1.0

type Config struct {
	Program string
	Mode    string
}

Config Provider configuration.

type DNSProvider

type DNSProvider struct {
	// contains filtered or unexported fields
}

DNSProvider adds and removes the record for the DNS challenge by calling a program with command-line parameters.

func NewDNSProvider

func NewDNSProvider() (*DNSProvider, error)

NewDNSProvider returns a new DNS provider which runs the program in the environment variable EXEC_PATH for adding and removing the DNS record.

func NewDNSProviderConfig added in v1.1.0

func NewDNSProviderConfig(config *Config) (*DNSProvider, error)

NewDNSProviderConfig returns a new DNS provider which runs the given configuration for adding and removing the DNS record.

func NewDNSProviderProgram added in v1.1.0

func NewDNSProviderProgram(program string) (*DNSProvider, error)

NewDNSProviderProgram returns a new DNS provider which runs the given program for adding and removing the DNS record. Deprecated: use NewDNSProviderConfig instead

func (*DNSProvider) CleanUp

func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error

CleanUp removes the TXT record matching the specified parameters

func (*DNSProvider) Present

func (d *DNSProvider) Present(domain, token, keyAuth string) error

Present creates a TXT record to fulfill the dns-01 challenge.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL