После прочтения этой документации: http://kafka.apache.org/documentation.html#security_ssl Мне удалось настроить Kafka с использованием SSL с самоподписанным сертификатом.
Я попытался настроить его с помощью сертификата Digicert, и он может представлять сертификат, но не предоставляет промежуточное звено.
Мне не удалось найти никакой документации по использованию цепочки сертификатов / промежуточных сертификатов с Kafka, поэтому я не знаю, возможно ли это на самом деле.
Мое хранилище ключей выглядит так:
$ keytool -list -keystore star_dev.keystore
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 2 entries
intermediateca, 18-May-2018, trustedCertEntry,
Certificate fingerprint (SHA1): 1F:B8:6B:11:68:EC:74:31[...]
star_dev, 18-May-2018, PrivateKeyEntry,
Certificate fingerprint (SHA1): 9D:B8:05:44:B1:2D:8E:3E[...]
Это правильный ответ: https://stackoverflow.com/questions/9299133/why-doesnt-java-send-the-client-certificate-during-ssl-handshake/9300727#9300727
Вы создаете пакет из сертификата и промежуточных звеньев следующим образом:
cat cert.crt intermediate.crt >> bundle.crt
Затем импортируйте пакет:
keytool -importcert -keystore store.jks -alias myalias -file bundle.pem