Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

В Kafka SSL по умолчанию отключен. Для включения нужно создать keystore и trueststore и внести некоторые правки в  конфигурацию server.properties.

Указываем имена хостов как они прописаны в сертификатах в поле CN 

Code Block
controller.quorum.voters=1@kafka1.domain.ru:9093,2@kafka2.domain.ru:9093

Далее, меняем имена listener

Code Block
listeners=SSL://kafka1.domain.ru:9092,CONTROLLER://kafka1.domain.ru:9093
inter.broker.listener.name=SSL

Необходимо указать адрес этого узла

Code Block
advertised.listeners=SSL://kafka1.domain.ru:9092
controller.listener.names=CONTROLLER

После, меняем мапинг имен

Code Block
listener.security.protocol.map=CONTROLLER:SSL,SSL:SSL

Необходимо указать параметры ssl. Данные параметры обеспечивают аутентификацию клиента по протоколу SSL/TLS.

Code Block
ssl.keystore.location=/opt/kafka/certs/kafka.keystore.jks
ssl.keystore.password=password
ssl.truststore.location=/opt/kafka/certs/kafka.truststore.jks
ssl.truststore.password=password
ssl.key.password=password

Клиенты, подключающиеся к Kafka brokers, должны предоставить действительный сертификат клиента для аутентификации.

Code Block
ssl.client.auth=required

Настройки WNAM 2

В application.yaml добавить настройки, указываем расположение truststore и keystore  и пароли к ним.

Code Block
spring: 
  kafka:
    bootstrap-servers: kafka1.domain.ru:9092,kafka2.domain.ru:9092
    security:
      protocol: SSL
    ssl:
      protocol: SSL
      trust-store-location: "file:///opt/kafka/certs/kafka.truststore.jks"
      truststore-password: password
      key-store-location: "file:///opt/kafka/certs/client.keystore.jks"
      key-store-password: password