SSL-сертификаты производителя KafkaJS

Я пишу продюсеру NodeJS Kafka с помощью KafkaJS и не понимаю, как получить необходимые SSL-сертификаты для подключения к Kafka с использованием соединения SASL-SSL. В документации KafkaJS есть такая конфигурация для SSL:

ssl: {
    rejectUnauthorized: false,
    ca: [fs.readFileSync('/my/custom/ca.crt', 'utf-8')],
    key: fs.readFileSync('/my/custom/client-key.pem', 'utf-8'),
    cert: fs.readFileSync('/my/custom/client-cert.pem', 'utf-8')
  },

С этим у меня проблема, потому что я не знаю, как и какие сертификаты ему предоставить.

Мне нужно предоставить все три реквизита (CA, ключ и сертификат)? Если да, то как их получить? У нас есть кластер Kafka, настроенный так, как это Учебное пособие по Confluent Security. Нужно ли мне декодировать хранилище ключей или что-то еще, чтобы получить правильные сертификаты для моего производителя KafkaJS? У меня есть общее представление обо всем этом.

1 ответ

Ваш брокер применяет аутентификацию клиентов? Если да, то вам понадобитсяkey а также cert. Если ваш клиент работает на "стандартном" компьютере, то наиболее известный центр сертификации уже присутствует, например, на/etc/ssl/certs. В таком случае вам понадобится толькоssl : true. Если вы используете самозаверяющий сертификат, но не используете аутентификацию клиента, тогдаca необходимо предоставить.

Итак, вот ваши варианты.

Проверка подлинности клиента

Если CA самоподписанный, добавьте ca также (см. ниже).

ssl: {
    key: fs.readFileSync('/my/custom/client-key.pem', 'utf-8'),
    cert: fs.readFileSync('/my/custom/client-cert.pem', 'utf-8')
  }

Самоподписанный сертификат

ssl: {
    rejectUnauthorized: false,
    ca: [fs.readFileSync('/my/custom/ca.crt', 'utf-8')]
  }

В rejectUnauthorized : falseне будет проверять по известным CA.

См. Этот вопрос SO для получения дополнительной информации.

Другие вопросы по тегам