Программисты JAVA общаются здесь
Anonymous
Не удалось установить соединение Kafka SSL в приложении Java
Сообщение
Anonymous » 06 янв 2025, 11:10
Я пытаюсь подключить свое приложение к Kafka и получаю следующую ошибку. Я создаю хранилище доверенных сертификатов и хранилище ключей в файле inputpoint.sh следующим образом.
Код: Выделить всё
Truststore:
keytool -keystore "${TRUSTSTORE_JKS_PATH}" -storepass "${KAFKA_TRUSTSTORE_PASSWORD}" -alias CA -importcert -file /tmp/ca.crt -noprompt
keytool -keystore "${TRUSTSTORE_JKS_PATH}" -storepass "${KAFKA_TRUSTSTORE_PASSWORD}" -alias Root -importcert -file /tmp/root.crt -noprompt
openssl pkcs12 -export -in /tmp/user.crt -inkey /tmp/user.key -name "${HOSTNAME}" -password pass:"${KAFKA_KEYSTORE_PASSWORD}" -out "${KEYSTORE_P12_PATH}"
keytool -importkeystore -srckeystore "${KEYSTORE_P12_PATH}" -srcstoretype pkcs12 -srcalias "${HOSTNAME}" -destkeystore "${KEYSTORE_JKS_PATH}" -deststoretype jks -deststorepass "${KAFKA_KEYSTORE_PASSWORD}" -destalias "${HOSTNAME}" -srcstorepass "${KAFKA_KEYSTORE_PASSWORD}"
Код: Выделить всё
Props : {default.value.serde=org.apache.kafka.common.serialization.Serdes$StringSerde, ssl.keystore.location=/app/keystore.jks, bootstrap.servers=devserve:9094, key.serializer=class org.apache.kafka.common.serialization.StringSerializer, default.key.serde=org.apache.kafka.common.serialization.Serdes$StringSerde, security.protocol=SSL, ssl.truststore.location=/app/truststore.jks, value.serializer=class com.fasterxml.jackson.databind.JsonSerializer, ssl.keystore.password=password, ssl.truststore.password=password, application.id=configurable-app, ssl.endpoint.identification.algorithm=}
Код: Выделить всё
Error:
Caused by: org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:383)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:326)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
at
Как решить эту проблему?
Подробнее здесь:
https://stackoverflow.com/questions/793 ... pplication
1736151049
Anonymous
Я пытаюсь подключить свое приложение к Kafka и получаю следующую ошибку. Я создаю хранилище доверенных сертификатов и хранилище ключей в файле inputpoint.sh следующим образом. [code]Truststore: keytool -keystore "${TRUSTSTORE_JKS_PATH}" -storepass "${KAFKA_TRUSTSTORE_PASSWORD}" -alias CA -importcert -file /tmp/ca.crt -noprompt keytool -keystore "${TRUSTSTORE_JKS_PATH}" -storepass "${KAFKA_TRUSTSTORE_PASSWORD}" -alias Root -importcert -file /tmp/root.crt -noprompt openssl pkcs12 -export -in /tmp/user.crt -inkey /tmp/user.key -name "${HOSTNAME}" -password pass:"${KAFKA_KEYSTORE_PASSWORD}" -out "${KEYSTORE_P12_PATH}" keytool -importkeystore -srckeystore "${KEYSTORE_P12_PATH}" -srcstoretype pkcs12 -srcalias "${HOSTNAME}" -destkeystore "${KEYSTORE_JKS_PATH}" -deststoretype jks -deststorepass "${KAFKA_KEYSTORE_PASSWORD}" -destalias "${HOSTNAME}" -srcstorepass "${KAFKA_KEYSTORE_PASSWORD}" [/code] [code]Props : {default.value.serde=org.apache.kafka.common.serialization.Serdes$StringSerde, ssl.keystore.location=/app/keystore.jks, bootstrap.servers=devserve:9094, key.serializer=class org.apache.kafka.common.serialization.StringSerializer, default.key.serde=org.apache.kafka.common.serialization.Serdes$StringSerde, security.protocol=SSL, ssl.truststore.location=/app/truststore.jks, value.serializer=class com.fasterxml.jackson.databind.JsonSerializer, ssl.keystore.password=password, ssl.truststore.password=password, application.id=configurable-app, ssl.endpoint.identification.algorithm=} [/code] [code]Error: Caused by: org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:383) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:326) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321) at [/code] Как решить эту проблему? Подробнее здесь: [url]https://stackoverflow.com/questions/79332462/kafka-ssl-handshake-failed-in-java-application[/url]