acmeproxy

package module
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Dec 25, 2023 License: MIT Imports: 3 Imported by: 0

README

ACMEProxy module for Caddy

This package contains a DNS provider module for Caddy. It can be used to manage DNS records via an ACMEProxy server.

Caddy module name

dns.providers.acmeproxy

XCaddy

xcaddy build --with github.com/caddy-dns/acmeproxy@v1.0.6

Config examples

To use this module for the ACME DNS challenge, configure the ACME issuer in your Caddy JSON like so:

{
    "module": "acme",
    "challenges": {
        "dns": {
            "provider": {
                "name": "acmeproxy",
                "username": "user",
                "password": "pass",
                "endpoint": "https://example.com:9090"
            }
        }
    }
}

or with the Caddyfile:

tls {
    dns acmeproxy https://example.com:9000 {
        username user
        password pass
    }
}

Authenticating

See the associated README in the libdns package for important information about credentials.

Troubleshooting

Error: timed out waiting for record to fully propagate

Some environments may have trouble querying the _acme-challenge TXT record from dnsproviders. Verify in the providers dashboard that the temporary record is being created.

If the record does exist, your DNS resolver may be caching an earlier response before the record was valid. You can instead configure Caddy to use an alternative DNS resolver such as Cloudflare's official 1.1.1.1.

Add a custom resolver to the tls directive:

tls {
  dns acmeproxy https://example.com:9000 {
    username user
    password pass
  }
  resolvers 1.1.1.1
}

Or with Caddy JSON to the acme module: challenges.dns.provider.resolvers: ["1.1.1.1"].

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Provider

type Provider struct{ *acmeproxy.Provider }

Provider wraps the provider implementation as a Caddy module.

func (Provider) CaddyModule

func (Provider) CaddyModule() caddy.ModuleInfo

CaddyModule returns the Caddy module information.

func (*Provider) Provision

func (p *Provider) Provision(ctx caddy.Context) error

Implements caddy.Provisioner.

func (*Provider) UnmarshalCaddyfile

func (p *Provider) UnmarshalCaddyfile(d *caddyfile.Dispenser) error

UnmarshalCaddyfile sets up the DNS provider from Caddyfile tokens. Syntax:

acmeproxy [<endpoint>] {
	endpoint [<endpoint>]
    username <username>
    password <password>
}

Jump to

Keyboard shortcuts

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