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 для получения дополнительной информации.