-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TLS auth secret not found using controller v1.11.4 #12620
Comments
This issue is currently awaiting triage. If Ingress contributors determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Can you remove he namespace name and just only use the secret name, to see what the error message impact is. |
/triage needs-information |
Hello, thank you for your quick response. If I delete the namespace, the error says that the format is invalid. More specifically:
It's weird, because if I rollback with helm to the immediately previous version 4.11.3 (controller v1.11.3), everything works perfectly again without changing anything at all. |
Can you share screen or write steps to reproduce on a kind cluster. |
The problem is that readers have to trust that you have not made any human error like secret without ca and so on. Secrets usually take only cert+key so proof is needed for how you added ca to that secret. |
i recall creating a secret with 3 components like cert, key and ca-cert but I have to read and search on how I did that for a test. |
Hi, right now I can't generate a minimal example to reproduce it because I don't have time, but as soon as I have time I'll put it here. For the moment, I share with you the content of the ca.crt field of the ca-secret secret that when updating it says that it can't find (in json format due to github yaml restrictions).
As can be seen, it's just the Ubuntu 24.04 trusted CAs chain. I understand that I have to demonstrate with a minimal example how to reproduce the error, but I thought that reviewing the changes of the controller from v1.11.3 to v1.11.4 maybe you could see if something has been changed that affects this. |
I could help if you explain everything about that secret. who is hte cert from. how did you create the secret. show the |
Hi, I've found the problem, I hadn't seen this error line, which is more descriptive: It turns out that in the ca-secret secret that gives error, which is a chain of CAs, there is a CA that has a negative serial number. Up to version v1.11.3 of the Ingress Controller driver, this is not a problem, but from v1.11.4 onwards it is, because the version of go has been updated to v1.23.3 and although it does not appear in the releases notes, now the x509.ParseCertificate says:
Thanks to this stackoverflow post. I will try to update the chain of CAs, to see if there is no longer any with a negative serial number, and that would solve my case. |
thanks for updating. Close the case once resolved. |
I close the issue because I confirm that if there is no CA with a negative serial number the problem is solved. Thanks! |
/remove-kind bug |
This issue is affecting me when using the default Debian bullseye trust store located at After v1.11.3, ingress-nginx throws This is caused by golang/go#65085 / https://go-review.googlesource.com/c/go/+/562343 CATCert (who is responsible for this root cert) successfully argued for its inclusion in Mozilla's trust store, stating:
To me it seems premature that the commit was merged in conflict with past precedent regarding this particular root certificate, knowingly breaking Go from being able to accept operating system default PKI trust stores. Trust-manager recently worked around Go's regression by allowing negative serial numbers when using Go 1.23, which is how I would propose ingress-nginx resolve this absent a better solution. |
@logan2211 we rely on feedback so this could be significant. An action item becomes implied on the project if enough number of users are impacted. But a discussion is needed so please join the slack channel ingress-nginx-dev and see if maintainers engage. You can also join the ingress-nginx community meeting https://github.com/kubernetes/community/tree/master/sig-network |
What happened:
When updating the helm chart to version 4.11.4 (v1.11.4 of the controller), it is not able to find the secret specified with the
nginx.ingress.kubernetes.io/auth-tls-secret
annotation, which in previous versions had been working fine and the secret still exists and with the same value. This causes all requests to return a 403. I also tried with version 4.12.0 in case it was an incompatibility problem with the k8s 1.31 versoin, but the behaviour is the same.Also in nginx.conf
What you expected to happen:
That it would continue to function normally, being able to validate the client certificate with the CAs chain specified in the ca.crt field of the ca-secret secret.
NGINX Ingress controller version (exec into the pod and run
/nginx-ingress-controller --version
):Kubernetes version (use
kubectl version
):Environment:
helm ls -A | grep -i ingress
:helm -n <ingresscontrollernamespace> get values <helmreleasename>
kubectl describe ingressclasses
The text was updated successfully, but these errors were encountered: