cert-manager / cert-manager

Automatically provision and manage TLS certificates in Kubernetes
https://cert-manager.io
Apache License 2.0
12.07k stars 2.08k forks source link

Challenge getting 404 instead of 200 #7085

Open entrymon opened 4 months ago

entrymon commented 4 months ago

Describe the bug:

Stuck on this issue from last few days, same setup was working few months ago, recreated cluster and seeing this not working now.

Challenge returning

Reason:      Waiting for HTTP-01 challenge propagation: wrong status code '404', expected '200'

If I curl from outside my cluster I get 200

curl -XGET -ikL http://domain.com/.well-known/acme-challenge/<token>
HTTP/1.1 200 OK
cache-control: no-cache, no-store, must-revalidate
date: Mon, 10 Jun 2024 21:06:58 GMT
content-length: 87
content-type: text/plain; charset=utf-8
x-envoy-upstream-service-time: 1
server: istio-envoy

Expected behaviour: Excepted to generate certificate and challenge is complete

Steps to reproduce the bug:

  1. On Baremetal server
  2. Install minikube
  3. Install metallb using standard helm
  4. Install istio using standard helm
  5. Install cert manager using standard helm
  6. Install cluster issuer and certificate, gateway, virtual service and deployment.
  7. Notice service is working
  8. Notice curl works from outside cluster but challenge returns 404.

Anything else we need to know?: Tried adding dns resolver to args

helm upgrade --install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace -f ./deployment/tools/cert-manager/cert-manager-values.yaml  \n
--set 'extraArgs={--dns01-recursive-nameservers-only,--dns01-recursive-nameservers=8.8.8.8:53\,1.1.1.1:53,--acme-http01-solver-nameservers=8.8.8.8:53\,1.1.1.1:53}' 

Environment details::

/kind bug

cert-manager-bot commented 1 week ago

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close. If this issue is safe to close now please do so with /close. /lifecycle stale