-
Notifications
You must be signed in to change notification settings - Fork 509
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
Support and test multiple TLS certificates per Gateway listener #1330
Comments
This is one of the bullet points of #1104 (although that doesn't explicitly require multiple certs), adding a link from there as well. |
I’m interested in working on this conformance test. I went through the documentation. From my understanding, the conformance test for Gateway HTTPS listener references multiple TLS certificates should include the below aspects
|
Sorry for the delay, @ksankeerth, that looks right to me. |
Thanks @youngnick. I'll send a PR to cover these tests. Let's get others' opinions after the PR |
Hi @youngnick, |
My understanding was that multiple certificate refs per Listener was "custom" conformance, per: Am I missing something here? (Per @robscott's point in #1330 (comment), we do still need a test for a single TLS cert, though). |
No, I think you're correct @skriss. It looks like the language is a bit confusing, where https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.Listener has
under the The proposed change tests the longest SNI bit only (though I'm not sure there's anything more to test for multiple refs, and comments above seem to agree). |
@rainest Sorry for the confusion related to the proposed changes. I also looked at the same doc. The Longest Matching SNI was mentioned as support: core. The second proposed test seems unnecessary. As “Host Header” and “Hostname” should match, I thought the “SAN” or “CommonName” of certificates also match with “Hostname”. I think it’s not necessary for Support: core. Even in the PR, I didn’t include any tests for that. #1375
|
We discussed this one in a triage meeting, and although we have #1375 open, before we merge that one, we need another PR to move the multiple certs field to Extended support, and we can discuss there if we all agree (seems likely we do though). @ksankeerth, any chance you are game to give that one a go? |
@youngnick I submitted a PR for this. #1526 |
Hey @ksankeerth, since you are working on it now. May I remove help and assign this to you? |
It's marked to fix this, so I think we're good @Xunzhuo we just need to catch up on our PR review backlog 😅 /assign @ksankeerth |
I think this issue has gotten stuck, and to unblock it we're going to need a clear understanding of how underlying dataplanes handle multiple certificates. Before we can call this extended, we need to:
Until we have this figured out, we can't move forward with graduating multiple TLS certs to "Extended" support. |
Kong's implementation:
We intended to add support for (1) to meet the spec as it is. The behavior around overlapping/duplicate certificates doesn't fall under the existing spec, as the additional certificates are configured as part of a Listener, which already specifies a hostname independent of the certificates attached to the Listener. Our implementation does not automatically serve certificates based on their CN or SANs. Our SNI->selected certificate configuration is independent of the certificate contents, so we create a mapping from the Listener hostname to the certificates the Listener references. I think the spec could reasonably specify rules for overlapping hostnames across different Listeners, as I wouldn't expect the "choose the most specific hostname you can" rule would be controversial. I don't think we could easily specify conformance rules for handling of additional certificates configured within a Listener. I would not be surprised if additional certificates vary in purpose across vendors. |
I think we need to re-triage this and make sure we're aligned on what's next for this one. /triage needs-information |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
What would you like to be added:
We should clarify the API Spec to clarify what happens when multiple TLS Certificates are specified on a Listener. For example, what happens when those certificates overlap or conflict? Once we clarify the spec, we'll also need a conformance test to verify the behavior.
Why this is needed:
Attaching multiple TLS certificates to a Gateway listener should have extended support.
The text was updated successfully, but these errors were encountered: