diff --git a/dns_challenge.go b/dns_challenge.go
index af04a08b29f1f728749ecf2fcc4150525943d971..2eab8aef48d41453122948f9b2b70cd4cea3ced8 100644
--- a/dns_challenge.go
+++ b/dns_challenge.go
@@ -88,7 +88,8 @@ func (d *dnsValidator) client() *dns.Client {
 
 func (d *dnsValidator) Fulfill(ctx context.Context, client *acme.Client, domain string, chal *acme.Challenge) (func(), error) {
 	zone := domain[strings.Index(domain, ".")+1:]
-	fqdn := dns.Fqdn(domain)
+	// Add terminating dot to the FQDN.
+	fqdn := dns.Fqdn(domain) + "."
 	value, err := client.DNS01ChallengeRecord(chal.Token)
 	if err != nil {
 		return nil, err