У меня проблема с работой библиотеки confluent-kafka-dotnet с SSL. Все работает нормально без SSL, и я могу заставить SSL работать, используя собственные скрипты kafkas, как показано ниже.
> .\kafka-console-producer.bat --broker-list domain.net:9094 --topic
busit-test --producer.config client-ssl.properties
Содержимое client-ssl.properties:
security.protocol=SSL
ssl.truststore.location=C:/Certificates/store.jks
ssl.truststore.password=mysecret
я получил ca в файле cert.crt, и вот как я получил store.jks, используя:
keytool -importcert -keystore store.jks -alias issuing -file cert.crt
Чтобы использовать confluent-kafka-dotnet, мне нужно настроить его в соответствии с документацией ( https://github.com/edenhill/librdkafka/wiki/Using-SSL-with-librdkafka).
metadata.broker.list=at_least_one_of_the_brokers
security.protocol=ssl
# CA certificate file for verifying the broker's certificate.
ssl.ca.location=ca-cert
# Client's certificate
ssl.certificate.location=client_?????_client.pem
# Client's key
ssl.key.location=client_?????_client.key
# Key password, if any.
ssl.key.password=abcdefgh
я преобразовываю файл cert.crt в .pem, используя:
openssl x509 -inform DER -in cert.crt -out cert.pem -text
Это дает мне действительный pem, который я могу прочитать с помощью текстового редактора. Затем я указываю на этот файл pem из ssl.ca.location. Брокеры настроены так, чтобы не проверять клиентов, но когда я запускаю производителя своего клиента, я получаю следующий журнал ошибок:
Connected to ipv4#xx.xxx.xx.xx:9094
failed: err: Local: SSL error: (errno: No error)
Broker changed state CONNECT -> DOWN
Я пробовал все, что мог придумать, но не могу заставить его работать. поскольку он работает со сценариями, которые я могу скачать с kafka, я уверен, что с брокерами все в порядке.
Любая помощь будет оценена.
debug
наbroker,security
и опубликовать журнал? - person Treziac   schedule 02.09.2017