• This repository has been archived on 18/May/2020
  • Stars
    star
    98
  • Rank 345,882 (Top 7 %)
  • Language
    Go
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OBSOLETE: DNS providers adapted for use in Caddy to solve the ACME DNS challenge - for Caddy v1 only. See caddy-dns for v2.

DNS providers for Caddy v1 (obsolete)

⚠️ This repo is for Caddy v1, which has been obsoleted by Caddy 2.

Caddy 2 also supports the DNS challenge in a similar way to v1, but using backwards-incompatible APIs that are much more flexible and easier to use. This repository is no longer relevant or maintained.

Migrating to the new APIs is solely a community effort. It is very easy to implement a provider if you know Go!

Version 2 resources:

Old readme (for v1)

These providers can be used to help solve the ACME DNS challenge by plugging them into Caddy 0.9-1.x:

import _ "github.com/caddyserver/dnsproviders/<provider>"

You can then use this in your Caddyfile with the tls directive like so:

tls {
	dns <provider>
}

Credentials for your DNS provider should be set in environment variables. This information is in the Automatic HTTPS page of the Caddy documentation. For more information about using your DNS provider, see the docs for your provider directly.

If you specify a DNS provider, the DNS challenge will be used exclusively; other challenge types will be disabled. Be aware that some DNS providers may be slow in applying changes.

About these packages

Caddy 0.9 and newer supports solving the ACME DNS challenge. This challenge is unique because the server that is requesting a TLS certificate does not need to start a listener and be accessible from external networks. This quality is essential when behind load balancers or in other advanced networking scenarios.

The DNS challenge sets a DNS record and the ACME server verifies its correctness in order to issue the certificate. Caddy can do this for you automatically, but it needs credentials to your DNS provider to do so. Since every DNS provider is different, we have these adapters you can plug into Caddy in order to complete this challenge.

The underlying logic that actually solves the challenge is implemented in a different package not far away from here. Caddy uses go-acme/lego, a library originally written for use in Caddy, to solve ACME challenges. If you wish to add a new provider, see the documentation for that library and write your own provider implementation. Then writing the adapter for Caddy is very easy: just copy+paste any of these existing ones, replace the names and tweak a few things, and submit a pull request. Done!

More Repositories

1

caddy

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Go
58,009
star
2

certmagic

Automatic HTTPS for any Go program: fully-managed TLS certificate issuance and renewal
Go
4,967
star
3

examples

OBSOLETE. This repo was for Caddy v1. For v2 and newer, see our forum's wiki category.
CSS
971
star
4

xcaddy

Build Caddy with plugins
Go
890
star
5

ingress

WIP Caddy 2 ingress controller for Kubernetes
Go
636
star
6

forwardproxy

Forward proxy plugin for the Caddy web server
Go
603
star
7

caddy-docker

Source for the official Caddy v2 Docker Image
Dockerfile
408
star
8

nginx-adapter

Run Caddy with your NGINX config
Go
315
star
9

cache-handler

Distributed HTTP caching module for Caddy
Go
260
star
10

website

The Caddy website
HTML
151
star
11

dist

Resources for packaging and distributing Caddy
Shell
115
star
12

replace-response

Caddy module that performs replacements in response bodies
Go
95
star
13

vscode-caddyfile

Rich Caddyfile support for Visual Studio Code
TypeScript
78
star
14

transform-encoder

Log encoder module for custom log formats
Go
73
star
15

gateway

Kubernetes Gateway API implementation powered by Caddy
Go
60
star
16

caddy-lua

An experiment in executing Lua from Caddy. Ignore this for now. ;)
Go
33
star
17

sublimetext

Caddyfile syntax highlighting for Sublime Text 3
24
star
18

getcaddy.com

Automated installer script for Caddy with plugins. DECOMISSIONED in 2020.
Shell
22
star
19

ntlm-transport

NTLM reverse proxy transport module for Caddy
Go
14
star
20

cue-adapter

CUE config adapter for Caddy
Go
12
star
21

pkl-adapter

Configure Caddy with Pkl format
Go
10
star
22

zerossl

ZeroSSL REST API client implementation for Go
Go
8
star
23

moduledoc

Automated JSON docs generation for Caddy modules
Go
7
star
24

ingress-docker

4
star
25

circuitbreaker

A circuit-breaker module for the reverse proxy
Go
4
star
26

json5-adapter

JSON5 config adapter
Go
3
star
27

jsonc-adapter

JSONC config adapter
Go
2
star