Skip to content
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

Implement client certificate subject validation #60

Merged
merged 1 commit into from
Sep 1, 2020

Conversation

radekg
Copy link
Contributor

@radekg radekg commented Aug 24, 2020

This PR implements client certificate subject validation. The DN fields selected for this initial version are somewhat arbitrary but most likely the most common. This allows configuring the proxy TLS to validate the client cert subject, the Kafka Proxy operator can require specific subject to be present and contain specific values.

I have opted in for a flag per subject field to prevent requiring the user to follow any arbitrary string format. Additionally, all or none of the DN fields are explicitly required.

In a multi-tenant environment, the tenant has the ability to request certificates from a CA. The usual setup is:

Root CA -> Intermediate -> | -> Server certificate Tenant A
                           | -> Client certificate Tenant A
                           | -> Server certificate Tenant B
                           | -> Client certificate Tenant B

For security reasons, the CA operator does not allow tenants to issue an intermediate from the intermediate, this would require that the second stage intermediate allows certificate signing. With such setup, the user of Client certificate Tenant B can connect to Server Tenant A. Being able to additionally validate the subject adds a layer of security on the TLS level.

@radekg
Copy link
Contributor Author

radekg commented Aug 26, 2020

Hi @everesio, do you think it would be possible to get a feedback on this feature?

@everesio
Copy link
Contributor

everesio commented Sep 1, 2020

Thank you for you contribution, I will check it soon

@everesio
Copy link
Contributor

everesio commented Sep 1, 2020

PR looks good

@everesio everesio merged commit ae34407 into grepplabs:master Sep 1, 2020
@radekg radekg deleted the proxy-tls-client-subject branch September 2, 2020 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants