Acme-dns support in caddy v2 as a dns provider

I would like to use GitHub - joohoi/acme-dns: Limited DNS server with RESTful HTTP API to handle ACME DNS challenges easily and securely. to serve as a CNAME to pass LE DNS challenge so I can do:

  1. Wildcard domains
  2. Be able to operate without needing caddy (actually the acme issuer) have access to 80/443

The last conversation about this here seems to be by @danb35: Acme-dns for DNS validation

acme-dns seems to support the Lego client acme-dns/README.md at master · joohoi/acme-dns · GitHub

What I plan to do is:

i. Make a CNAME entry of _acme-challenge → _acme-challenge.blah.cf, at the primary domain DNS
ii. acme-dns is running at blah.cf and handles its own NS as explained at GitHub - joohoi/acme-dns: Limited DNS server with RESTful HTTP API to handle ACME DNS challenges easily and securely.
iii. Have caddy v2 communicate with acme-dns so acme-dns can handle and solve the dns validation

As the first step, I will simplify i-iii by using https://auth.acme-dns.io/register as shown at acme-dns/README.md at master · joohoi/acme-dns · GitHub but I’m curious about the caddy v2 integration

It should be easy to implement a libdns module for acmedns:

Buuut I have some ideas surrounding acmedns :zipper_mouth_face:

1 Like

I’m all ears!

I’m Go ignorant and while I am more than happy to learn Go and contribute that way, are you saying the Lego client for caddy v2 won’t work with acme-dns Lego client support ?

I’m just thinking for the quickest way to see if this can be made to work - if anything in the OP is invalid, please let me know as it’s very important I understand this correctly

The lego-deprecated plugin should work fine for now, but obviously the preferred way is to use a proper libdns plugin. See here:

1 Like

I need help here. The 4th/5th step: GitHub - caddy-dns/lego-deprecated: (DEPRECATED) DNS modules so Caddy can solve the ACME DNS challenge with over 75 providers

says I should replace <provider_code> with the name of this provider, but I don’t see acmedns at:

https://go-acme.github.io/lego/dns/

What should I write for:

tls {
	dns lego_deprecated <provider_code>
}

It’s this one: Joohoi's ACME-DNS :: Let’s Encrypt client and ACME library written in Go.

So it’s acme-dns

1 Like

AH - they have more in the sidebar

I’m still all ears :smiley:

Nothing to announce right now lol

This topic was automatically closed after 30 days. New replies are no longer allowed.