-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Adding default certificate to the certificate list for SNI client connections #4090
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
Comments
This bug affects my use case. We have both RSA and ECDSA certificates that cover some SNI hostnames for increased compatibility with a large variety of legacy systems. When Certificate Discovery picks the default certificate, it eliminates it from the list of certificates used an option when negotiating TLS when using SNI. This means that a request that should be covered by two certificates will only be covered by the non-default. The work-around is to manually specify the annotation, duplicating cert1, so it appears as both the "default" as well as the first non-default: alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx:certificate/cert1,arn:aws:acm:us-west-2:xxxxx:certificate/cert1,arn:aws:acm:us-west-2:xxxxx:certificate/cert2 It would be nice if certificate discovery was aware of this use case and supported it without manual intervention. |
Thanks for bringing this up. I think adding default certificate to the certificate list is a valid request. We need some investigation on different options:
the above mentioned workaround doesn't seem to be working with current logic here |
Opinion on different options posed; Thoughts following on from my simplistic suggestion, and the update from @wweiwei-li ;
however, in this 2 certificates to 1 host mapping; CertA and CertB to foo.com;
|
This was not initially obvious to me, so I'd like to share in the case it helps the conversation: Server Name Indication (SNI) is an extension to the TLS protocol. ALB's didn't support SNI when they first came out, but support was added shortly after. When they did that, what was "the certificate" became "the default certificate", meaning the certificate that gets used if the client does not support SNI. To me, the purpose of this controller's certificate discovery feature is to support SNI in a way that optimizes for compatibility. As to what to do, I'm indifferent about making behavior configurable, but I feel like:
So I favor option 1 over option 2. |
I agree @sbbowers , the controller does the first item, building all certs matching the ingress host specified, as would be expected.
PS: a possible erroneous assumption, currently specifying a cert stop the auto-discovery workflow, so the |
I agree that |
Describe the feature you are requesting
Scenarios in controller certificate auto-discovery;
Motivation
Describe the proposed solution you'd like
Contribution Intention (Optional)
The text was updated successfully, but these errors were encountered: