Я пытаюсь настроить ssl-соединение между filebeat на моей linux машине и kafka, которая находится на ec2 в aws.
Я создал хранилище ключей с помощью:
keytool -genkey -keystore kafka.server.keystore.jks -validity 365 -storepass $SRVPASS -keypass $SRVPASS -dname "CN=my-ec2-node.compute-1.amazonaws.com" -storetype pkcs12 -keyalg RSA -ext SAN=dns:my-ec2-node.compute-1.amazonaws.com;
После этого я создал файл запроса на сертификацию:
keytool -keystore kafka.server.keystore.jks -certreq -file cert-request -storepass $SRVPASS -keypass $SRVPASS -keyalg RSA -ext SAN=dns:my-ec2-node.compute-1.amazonaws.com
Я отправил запрос в созданный мной локальный центр сертификации:
openssl x509 -req -CA /root/ca/ca-cert -CAkey /root/ca/ca-key -in /root/kafka-ssl/cert-request -out /root/kafka-ssl/cert-signed -days 365 -CAcreateserial -passin pass:$SRVPASS;
до этого шага. Если я попытаюсь увидеть содержимое хранилища ключей, я смогу увидеть запись DNS внутри:
keytool -list -v -keystore kafka.server.keystore.jks
#1: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
IPAddress: x.x.x.x
DNSName: my-ec2-node.compute-1.amazonaws.com
]
После импорта в хранилище ключей сертификат CA SubjectAlternativeName больше не появляется в хранилище ключей:
keytool -keystore kafka.server.keystore.jks -import -file cert-signed -storepass $SRVPASS -keypass $SRVPASS -noprompt -keyalg RSA -ext SAN=dns:my-ec2-node.compute-1.amazonaws.com;
Я также добавил подписанный сертификат:
keytool -keystore kafka.server.keystore.jks -import -file cert-signed -storepass $SRVPASS -keypass $SRVPASS -noprompt -keyalg RSA -ext SAN=dns:my-ec2-node.compute-1.amazonaws.com;
Я настроил и kafka, и filebeat, и скопировал ключ ca publi c (ca-cert) на машину filebeat. Кроме того, я также добавил в на обеих машинах следующая запись в / etc / hosts: xxxx my-ec2-node.compute-1.amazon aws .com
Прямо сейчас я получаю следующую ошибку на компьютере с файловым битом:
2020-04-20T11:40:26.788Z INFO kafka/log.go:53 Connected to broker at my-ec2-node.compute-1.amazonaws.com:9093 (unregistered)
2020-04-20T11:40:26.997Z INFO kafka/log.go:53 client/brokers registered new broker #0 at x.x.x.x:9093
2020-04-20T11:40:26.997Z INFO kafka/log.go:53 kafka message: client/metadata found some partitions to be leaderless
2020-04-20T11:40:26.997Z INFO kafka/log.go:53 client/metadata retrying after 250ms... (2 attempts remaining)
2020-04-20T11:40:27.247Z INFO kafka/log.go:53 client/metadata fetching metadata for [filebeat] from broker my-ec2-node.compute-1.amazonaws.com:9093
2020-04-20T11:40:27.398Z INFO kafka/log.go:53 producer/broker/0 starting up
2020-04-20T11:40:27.730Z INFO kafka/log.go:53 Failed to connect to broker x.x.x.x:9093: x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs
2020-04-20T11:40:27.730Z INFO kafka/log.go:53 producer/broker/0 state change to [closing] because x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs
2020-04-20T11:40:27.731Z INFO kafka/log.go:53 producer/broker/0 state change to [closing] because x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs
Я могу загрузить кафк a, конфигурация filebeat, но я думаю, что это связано с сертификацией ssl. Я также попытался упомянуть в -ext флаг ip, но это также не помогло ... Я предполагаю, что добавление ключа ca publi c в хранилище ключей вызвало это, но я не знал, как его сохранить.
Что мне здесь не хватает?