Skip to content

KAFKA-8336; Enable dynamic reconfiguration of broker's client-side certs#6721

Merged
rajinisivaram merged 1 commit intoapache:trunkfrom
rajinisivaram:KAFKA-8336-clientcert-update
May 15, 2019
Merged

KAFKA-8336; Enable dynamic reconfiguration of broker's client-side certs#6721
rajinisivaram merged 1 commit intoapache:trunkfrom
rajinisivaram:KAFKA-8336-clientcert-update

Conversation

@rajinisivaram
Copy link
Contributor

Enable reconfiguration of SSL keystores and truststores in client-side channel builders used by brokers for controller, transaction coordinator and replica fetchers. This enables brokers using TLS mutual authentication for inter-broker listener to use short-lived certs that may be updated before expiry without restarting brokers.

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

@rajinisivaram rajinisivaram requested a review from omkreddy May 13, 2019 15:01
@rajinisivaram rajinisivaram force-pushed the KAFKA-8336-clientcert-update branch from 65ab26f to 8c96241 Compare May 13, 2019 15:26
Copy link
Contributor

@omkreddy omkreddy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rajinisivaram Thanks for the PR. LGTM.

@rajinisivaram
Copy link
Contributor Author

@omkreddy Thanks for the review, merging to trunk

@rajinisivaram rajinisivaram merged commit 050fdd6 into apache:trunk May 15, 2019
pengxiaolong pushed a commit to pengxiaolong/kafka that referenced this pull request Jun 14, 2019
…rts (apache#6721)

Enable reconfiguration of SSL keystores and truststores in client-side channel builders used by brokers for controller, transaction coordinator and replica fetchers. This enables brokers using TLS mutual authentication for inter-broker listener to use short-lived certs that may be updated before expiry without restarting brokers.

Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
@abhishekvm
Copy link

abhishekvm commented Sep 23, 2019

@rajinisivaram @omkreddy How would I use this feature? I would like to assign short-lived certificates to the clients. I would like to know if I need to provide additional config at the broker and/or client level to use this feature?

@rajinisivaram
Copy link
Contributor Author

@abhishekvm We currently support dynamic updates of certificates only for brokers. This PR was enabling updates of certificates for client-side connections made by brokers (e.g connections made by the controller). For client applications, we don't have dynamic update feature yet.

@abhishekvm
Copy link

@rajinisivaram If I understand correctly, do you mean that we can't update the producer/consumer keystores dynamically?

@subashw
Copy link

subashw commented Oct 28, 2019

So if I want to add a fresh client I can add the certificate in the trusted client trust store and it woule be accepted? Is this correct?

showuon pushed a commit that referenced this pull request Jul 9, 2022
…ler connection (#12381)

What:
When a certificate is rotated on a broker via dynamic configuration and the previous certificate expires, the broker to controller connection starts failing with SSL Handshake failed.

Why:
A similar fix was earlier performed in #6721 but when BrokerToControllerChannelManager was introduced in v2.7, we didn't enable dynamic reconfiguration for it's channel.

Summary of testing strategy (including rationale)
Add a test which fails prior to the fix done in the PR and succeeds afterwards. The bug wasn't caught earlier because there was no test coverage to validate the scenario.

Reviewers: Luke Chen <showuon@gmail.com>
showuon pushed a commit that referenced this pull request Jul 9, 2022
…ler connection (#12381)

What:
When a certificate is rotated on a broker via dynamic configuration and the previous certificate expires, the broker to controller connection starts failing with SSL Handshake failed.

Why:
A similar fix was earlier performed in #6721 but when BrokerToControllerChannelManager was introduced in v2.7, we didn't enable dynamic reconfiguration for it's channel.

Summary of testing strategy (including rationale)
Add a test which fails prior to the fix done in the PR and succeeds afterwards. The bug wasn't caught earlier because there was no test coverage to validate the scenario.

Reviewers: Luke Chen <showuon@gmail.com>
showuon pushed a commit that referenced this pull request Jul 12, 2022
…ler connection (#12381)

What:
When a certificate is rotated on a broker via dynamic configuration and the previous certificate expires, the broker to controller connection starts failing with SSL Handshake failed.

Why:
A similar fix was earlier performed in #6721 but when BrokerToControllerChannelManager was introduced in v2.7, we didn't enable dynamic reconfiguration for it's channel.

Summary of testing strategy (including rationale)
Add a test which fails prior to the fix done in the PR and succeeds afterwards. The bug wasn't caught earlier because there was no test coverage to validate the scenario.

Reviewers: Luke Chen <showuon@gmail.com>
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.

4 participants

Comments