You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Matt Holt edited this page Aug 4, 2020
·
1 revision
In CertMagic terms, DNS providers are small libraries that facilitate the ACME DNS challenge.
They simply need to implement the certmagic.ACMEDNSProvider interface, which is:
// ACMEDNSProvider defines the set of operations required for// ACME challenges. A DNS provider must be able to append and// delete records in order to solve ACME challenges. Find one// you can use at https://github.com/libdns. If your provider// isn't implemented yet, feel free to contribute!typeACMEDNSProviderinterface {
libdns.RecordAppender
libdns.RecordDeleter
}
In other words, they need only implement the libdns interfaces. Specifically, they need to be able to append and delete DNS records.
(Currently, libdns defines 4 interfaces, but CertMagic only uses 2. If you are implementing a provider, you might as well implement all 4, since once you've implemented 2, adding the other two often is very easy, and is helpful to users in a variety of other applications.)
That's it! Once those two methods are implemented, you can use them with the certmagic.DNS01Solver type which is an acmez.Solver, thus allowing you to fulfill the DNS challenge with your provider.