-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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: Improve story with intermediate and/or multiple CAs #1220
Comments
Extremely useful. We have dashboards and alarms based on this information. Definitely can't lose it. |
@mattklein123 huh, this should be documented for sure - i had no idea Envoy reported that information! That would indeed be useful when using externally rooted certificates |
@PiotrSikora absolutely - i'll do it mid-morning and report back. Thanks for tracking this down! |
@timperret the admin endpoint is documented (though it could be better): But I don't think the server level stats are now that I search for it: Will make a note to document unless someone else gets to it first. |
@PiotrSikora excellent - this does indeed seem to resolve the issue. I tried the scenarios previously enumerated in #615, and it works! HUZZAH! Nice one @PiotrSikora 🍻 🏅 |
@PiotrSikora one bit of feedback on this change: in certain cases, I need to use a browser (mainly for tooling cases that are secured with mTLS). Safari prompts me for a client certificate, but Chrome and Firefox do not... they seem to get stuck in a loop of some kind. When we use the same certs with nginx this doesn't happen, so im wondering if there's some subtle bug here? |
@PiotrSikora ok some more information on this: best i can tell right now, it appears that its actually verifying against the list of CAs (as per my previous note at the end of last week), but what its not doing - and i believe this is incorrect - is its still only presenting the head of the list as an acceptable client CA, which is why the browsers don't prompt for a choice. |
@timperrett it definitely sends a list of CAs with the patch. You can see that list when connecting with I also verified that the Please note that Chrome won't ask for the client certificate (via the popup window) if it doesn't have any certificate that matches client certificate CA from the list sent by the server... But you say that it works with NGINX, so it should have matching certificate. Are you using exactly the same files with both: NGINX & Envoy? NGINX is also using You didn't revert the patch, by any chance, did you? |
@PiotrSikora todays lesson is that Tim should not be programming past midnight, as no productive work can happen. Had been upgrading Envoy and testing out various patches and did indeed use the wrong build when i was testing this on another project, making last nights lack of sleep entirely fruitless. Very sorry for the noise - i've re-tested this morning with the correct build and yep, you're right: its sending down the full list of acceptable CAs. 🍻 |
Partially fixes envoyproxy#1220. Signed-off-by: Piotr Sikora <piotrsikora@google.com>
@PiotrSikora this got auto closed by the other PR. Since you said "partially fixes" I'm going to reopen this. Let me know if it should be closed. |
The negotiation with multiple CAs is fixed, the part that's still broken is |
Tracking here is fine with me. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions. |
We are also interested in supporting this scenario. But in our case I think it looks a little bit different. Openssl supports such a scenario:
|
Automatic merge from submit-queue. Update Envoy SHA to version 1.6.0 Signed-off-by: Gary Brown <gary@brownuk.com> **What this PR does / why we need it**: This PR updates the Envoy SHA to use the commit associated with version 1.6.0. This version includes an update to propagate the B3 sampled header value. **Release note**: ```release-note NONE ```
I am also interested in improvements here. My use case has not been directly mentioned before: it is to support TLS cert rotation when using plain certs as a CA file. That is, I have Envoy doing TLS termination for clients that provide self-signed certificates. Envoy is configured to load those same certs as the downstream |
Hello, I have been trying to set multiple trusted CAs through Secret Discovery Service, however it seems that only the first one in the file is taken into account. Is there any other way i am missing out in order to set a list of trusted CAs, or is the feature not supported at all through SDS? |
Multiple trusted CAs should work in the same file / SDS resource. How are you testing this, exactly? In any case, please open a separate issue, since this issue is tracking expiration date when using intermediate certificates. |
Hello, we are facing the same issue, just only the first certificate in the file is picked up and the rest is ignored |
Hello, just to confirm, it works pretty fine. Our issue was that we used Multiple CAs which have the same issuer. |
Description: This PR implements all of the enum-related code, like translating between string- and enum-representations. It also implements `RetryPolicy`, since it's related to `RetryRule` (and defined in the same file). Risk Level: Low Testing: N/A, will follow up when everything is finished with e2e testing + unit testing in Python and/orC++ Docs Changes: N/A Release Notes: N/A Signed-off-by: Cerek Hillen <chillen@lyft.com> Signed-off-by: JP Simard <jp@jpsim.com>
Description: This PR implements all of the enum-related code, like translating between string- and enum-representations. It also implements `RetryPolicy`, since it's related to `RetryRule` (and defined in the same file). Risk Level: Low Testing: N/A, will follow up when everything is finished with e2e testing + unit testing in Python and/orC++ Docs Changes: N/A Release Notes: N/A Signed-off-by: Cerek Hillen <chillen@lyft.com> Signed-off-by: JP Simard <jp@jpsim.com>
(forked from #615)
Currently, Envoy assumes that:
ca_cert_file
(at least when it comes to client certificates, displaying CA information and calculating expiration dates),cert_chain_file
(at least for the purpose of calculating expiration dates).@mattklein123 How useful is the expiration date tracking in practice? Are you using this in production?
@timperrett Could you verify that this fixes the issues you described in #615?
The text was updated successfully, but these errors were encountered: