#ssl #apache-kafka #apache-nifi
#ssl #апач-кафка #апач-нифи
Вопрос:
У меня есть докер, настроенный для запуска брокера кафки с SSL. Сценарий оболочки используется для выполнения шагов генерации сертификата и используется для включения ssl для кафки.
Я могу успешно использовать jks хранилища ключей и хранилища доверия для доступа к брокеру кафки на одном компьютере. (Как инструмент кафка, так и apache nifi были настроены как клиент[издатель/потребитель], и они отлично работают)
Но когда я пытаюсь подключить брокера, используя эти сертификаты с разных компьютеров в одной сети, это выдает ошибку. (Nifi говорит «Неверный пароль или тип сертификата», но я чувствую, что это сообщение об ошибке вводит в заблуждение, и причина может быть другой)
Любой намек или идея, в чем может быть причина ?
Ошибка ниже, когда я попытался использовать инструментарий кафки :
org.apache.kafka.common.KafkaException: Failed to construct kafka producer at org.apache.kafka.clients.producer.KafkaProducer.lt;initgt;(KafkaProducer.java:432) at org.apache.kafka.clients.producer.KafkaProducer.lt;initgt;(KafkaProducer.java:298) at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:45) at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala) Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /home/ubuntu/sslcertkafka/directtransfer/kafka_install/kafka.client.truststore.jks of type JKS at org.apache.kafka.common.network.SslChannelBuilder.configure(SslChannelBuilder.java:71) at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:146) at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:67) at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:99) at org.apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:450) at org.apache.kafka.clients.producer.KafkaProducer.lt;initgt;(KafkaProducer.java:421) ... 3 more Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /home/ubuntu/sslcertkafka/directtransfer/kafka_install/kafka.client.truststore.jks of type JKS at org.apache.kafka.common.security.ssl.SslEngineBuilder.createSSLContext(SslEngineBuilder.java:163) at org.apache.kafka.common.security.ssl.SslEngineBuilder.lt;initgt;(SslEngineBuilder.java:104) at org.apache.kafka.common.security.ssl.SslFactory.configure(SslFactory.java:95) at org.apache.kafka.common.network.SslChannelBuilder.configure(SslChannelBuilder.java:69) ... 8 more Caused by: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /home/ubuntu/sslcertkafka/directtransfer/kafka_install/kafka.client.truststore.jks of type JKS at org.apache.kafka.common.security.ssl.SslEngineBuilder$SecurityStore.load(SslEngineBuilder.java:292) at org.apache.kafka.common.security.ssl.SslEngineBuilder.createSSLContext(SslEngineBuilder.java:155) ... 11 more Caused by: java.io.IOException: Invalid keystore format at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:666) at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:57) at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224) at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:71) at java.security.KeyStore.load(KeyStore.java:1445) at org.apache.kafka.common.security.ssl.SslEngineBuilder$SecurityStore.load(SslEngineBuilder.java:289)
Спасибо Махендра
Комментарии:
1. может быть, тема сертификата не соответствует имени хоста кафки?
2. @daggett — Спасибо за ваш ответ. [alt_names] DNS.1 = брокер DNS.2 = локальный DNS.3 = ip-{мой-ip-где-докер работает}.ec2.внутренний IP.1 = {мой-ip-где-докер работает} IP.2 = 0.0.0.0 Выше имен субъектов, которые я добавляю, и брокер кафки работает в контейнере докера на моей машине
Ответ №1:
Если вы используете хранилище ключей и хранилище доверия на разных компьютерах, обязательно предоставьте 2-му компьютеру или машинам хранилище ключей, которое есть в работающей системе. А затем обновите путь. Не уверен, что это решит проблему, но предоставление одного и того же ключа и хранилища доверия, ключа и сертификата определенно поможет.