-
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
ProxySSL ingress annotations do not work as expected when not all annotations are provided #10264
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/test-infra repository. |
I have been able to achieve my objective by doing the following:
|
/assign @rikatz |
This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach |
I have the same issue and I plan to provide a PR to quickly address the issue |
There has been no user updates since a year so there is no action item on the project here. The fundamental issue is an expectation to use SSL/TLS and yet not require the CA and other details. That is just not feasible as that approach increases risk of unauthorized connection. This can be discussed in the community meetings if the user joins or in slack. But there is no action item here on the project so closing this issue. The tally of open issues without action items is in hundreds so closing this issue until a action item emerges from this issue. /close |
@longwuyuan: Closing this issue. In response to this:
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. |
There are multiple issues and PRs that are all linked to the same underlying issue. We can keep this closed and refer to #10557 for example. The current implementation is clearly favouring the mTLS use case at the expense of absolutely standard server authentication modes (as used by almost every public website and many other systems). The other PRs can be used and there's no further update from me because I am using the configuration snippet approach to work around this limitation. To be clear, mTLS adds overhead and in many cases it isn't necessary or worthwhile. Without the base server authentication, the client cannot trust that the hop is safely encrypted. But client authentication (i.e. adding mTLS) only proves the identity of the sending server to the receiving server, but often this is accomplished with other data in the transmission, so it is a completely separate design choice. Not least because it is only proving the sender is the ingress reverse proxy, not even the originating client here. That can equally be accomplished by network security policies, for example. |
@staizen-stephen grateful for your comments. There are more updates that may help move this discussion forward.
The creator of the issue can very well re-open the issue and that would be welcome. But the hope is that re-opening the issue starts tracking a action item on someone. The project is unfortunately in no position to allocate resources. |
Absolutely fine. And fully understand the resource pressures. I would add that I'm not trying to remove verification, actually my entire goal was to ensure that verification was taking place against a certificate authority that was configured to be trusted by the host and injected into the container as well. In my case I simply did not have a client certificate and secret available to supply. Again, no issues closing this. Thanks for your fast response. |
What happened:
SSL certificate on backend was not verified despite providing annotations.
What you expected to happen:
I expected options
verifyDepth
andverify
to be configured.I discovered the cause in proxyssl/main.go#L119.
In the absence of client certificate data (secret, certificate), no other options are considered. The missing annotation error is reported to the calling function but that function (perhaps correctly) does not consider this an error.
The docs describe the use of these annotations for client authentication, but I do not need client authentication. My primary goal is to ensure that I have step-wise encryption and no unexpected man-in-the-middle attack. So I need each step in my flow to: 1) use TLS; 2) verify target server; 3) verify that a trusted root certificate was used.
NGINX Ingress controller version (exec into the pod and run nginx-ingress-controller --version.):
Kubernetes version (use
kubectl version
):Environment:
Cloud provider or hardware configuration: AWS, EKS
OS (e.g. from /etc/os-release): Amazon Linux 2
Kernel (e.g.
uname -a
):5.10.179-166.674.amzn2.x86_64 #1 SMP Mon May 8 16:54:25 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Install tools:
Please mention how/where was the cluster created like kubeadm/kops/minikube/kind etc.
Basic cluster related info:
kubectl version
kubectl get nodes -o wide
How was the ingress-nginx-controller installed:
helm ls -A | grep -i ingress
helm -n <ingresscontrollernamepspace> get values <helmreleasename>
Current State of the controller:
Current state of ingress object, if applicable:
kubectl describe ...
of any custom configmap(s) created and in useHow to reproduce this issue:
--v=5
to include debug level loggingproxy-ssl-*
annotations have been ignoredAnything else we need to know:
Would be good to make it clear in the annotation documentation that these are a group that have to be configured as a single set.
The text was updated successfully, but these errors were encountered: