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

Allow ssl.endpoint.identification.algorithm config #417

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sgg
Copy link

@sgg sgg commented Feb 7, 2023

Problem

kcat does not allow users to set the ssl.endpoint.identification.algorithm property in config files.

One can verify this behavior by creating a config file with ssl.endpoint.identification.algorithm=<non_default_value> and running kcat -F <config_file> -X dump

This causes friction for folks that wish to use config files and rely on (m)TLS but do not use CN/SAN based verification.

Note that one can specify the aforementioned config value via command line args.

Background

  1. Commit 5a7d3ba added support for config files however at the time librdkafka did not support this parameter at the time. (I presume that) because this is a option is commonly set in Java Kafka client properties files, the decision was made to have kcat silently filter this option when parsing config files.
  2. Support for ssl.endpoint.identification.algorithm was added in librdkafka v1.1.0 back in 2019 however the default was set to none.
  3. With the release of librdkafka v2.x, the default value of ssl.endpoint.identification.algorithm changed from none to https (enabling hostname verification).

I imagine this issue has gone unnoticed due to (2); folks tend not to notice that a TLS feature is disabled until you enable it 😅.

**Problem**

kcat does not allow users to set the `ssl.endpoint.identification.algorithm`
property in config files.

One can verify this behavior by creating a config file with
`ssl.endpoint.identification.algorithm=<non_default_value>` and running
`kcat -F <config_file> -X dump`

This causes friction for folks that wish to use config files and rely on
(m)TLS but do not use CN/SAN based verification.

Note that one can specify the aforementioned config value via command
line args.

**Background**

1. Commit 5a7d3ba added support for config
   files however at the time librdkafka did not support this parameter at
   the time. (I presume that) because this is a option is commonly set in
   Java Kafka client properties files, the decision was made to have kcat
   silently filter this option when parsing config files.
2. Support for ssl.endpoint.identification.algorithm was added in
   librdkafka v1.1.0 back in 2019 however the default was set to none.
3. With the release of librdkafka v2.x, the default value of
   ssl.endpoint.identification.algorithm changed from `none` to `https`
   (enabling hostname verification).

I imagine this issue has gone unnoticed due to (2); folks tend not to
notice that a TLS feature is _disabled_ until you enable it 😅.
@imyhxy
Copy link

imyhxy commented May 25, 2023

I met the same issue, and I can't even change the config from command line.

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.

2 participants