<p>I have created cert-manager on aks-engine using below command 
kubectl apply --validate=false -f <a href="https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml" rel="nofollow noreferrer">https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml</a></p>

<p>my certificate spec</p>

<p><a href="https://i.stack.imgur.com/8jRUw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8jRUw.png" alt="enter image description here"></a></p>

<p>issuer spec </p>

<p><a href="https://i.stack.imgur.com/foRDW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/foRDW.png" alt="enter image description here"></a></p>

<p>Im using nginx as ingress, I could see txt record in the azure dns zone created my azuredns service principle, but not sure what is the issue on nameservers</p>

<p>I ran into the same error... I suspect that it's because I'm using a mix of private and public Azure DNS entries and the record needs to get added to the public entry so letsencrypt can see it, however, cert-manager performs a check that the TXT record is visible before asking letsencrypt to perform the validation... I <strong>assume</strong> that the default DNS records cert-manager looks at is the private one, and because there's no TXT record there, it gets stuck on this error.</p>
<p>The way around it, as described on <a href="https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check" rel="noreferrer">cert-manager.io</a> is to override the default DNS using extraArgs (I'm doing this with terraform and helm):</p>
<pre><code>resource &quot;helm_release&quot; &quot;cert_manager&quot; {
  name       = &quot;cert-manager&quot;
  repository = &quot;https://charts.jetstack.io&quot;
  chart      = &quot;cert-manager&quot;
  
  set {
    name  = &quot;installCRDs&quot;
    value = &quot;true&quot;
  }
  
  set {
    name  = &quot;extraArgs&quot;
    value = &quot;{--dns01-recursive-nameservers-only,--dns01-recursive-nameservers=8.8.8.8:53\\,1.1.1.1:53}&quot;
  }
}
</code></pre>
