Краткий ответ: Вашему клиенту kafka это понадобится в конфигурации:
# security settings
security.protocol=SSL
ssl.truststore.location=/tmp/kafka.client.truststore.jks
ssl.truststore.password=
ssl.endpoint.identification.algorithm=
То есть, если вы используете то же хранилище доверенных сертификатов JVM из руководства, но без пароля. ssl.endpoint.identification.algorithm
отключает проверку имени хоста.
Длинный ответ: я изучал то же самое после прохождения урока, задаваясь вопросом, почему хранилище доверенных сертификатов JVM волшебным образом работает при подключении к MSK. Объяснение таково:
Если вы посмотрите, какие сертификаты импортировано этим доверенным хранилищем
keytool --list -v -keystore /tmp/kafka.client.truststore.jks | grep Owner
Одним из них является Starfield Services Root Certificate Authority
, когда Amazon приобрел компанию, ЦС стал одним из Амазонки (см. Все они здесь https://www.amazontrust.com/repository/). Поскольку доверенное хранилище JVM доверяет этому ЦС, оно также доверяет всему, что подписано ЦС, и кластер MSK является одним из них.
Если вы предпочитаете создать свое собственное хранилище доверенных сертификатов, загрузите один из сертификатов Amazon и импортируйте
keytool -keystore kafka.client.truststore.jks -alias CARoot -importcert -file {downloaded-cert} -storepass {your-password}
Спасибо, Янан