无法使用自签名证书运行 kafka

问题描述

我正在设置使用 SASL_PLAIN 和 SSL 身份验证的 kafka。我在公共 vpc 中设置了一个,以便我可以使用 certbot 来生成证书,但是对于这个,我将它设置在 certbot 无法访问的专用网络中(我也不允许访问它)。>

所以我想使用自签名证书来做到这一点。我试过这个:

openssl req -new -newkey rsa:4096 \
    -days 3650 \
    -x509 \
    -subj "/CN=$(hostname)" \
    -keyout key.pem \
    -out cert.pem \
    -passout "pass:${PASSWORD}"

openssl pkcs12 -export -out certout -name kafka \
    -inkey "key.pem" \
    -in "cert.pem" \
    -password "pass:${PASSWORD}" \
    -passin "pass:${PASSWORD}"

keytool -importkeystore -noprompt \
    -srckeystore certout \
    -srcstoretype pkcs12 \
    -destkeystore /etc/ssl/cert.jks \
    -deststoretype pkcs12 \
    -srcstorepass "${PASSWORD}" \
    -deststorepass "${PASSWORD}"

/etc/kafka/server.properties 中,我有

ssl.keystore.location=/etc/ssl/cert.jks
ssl.truststore.location=/etc/ssl/certs/java/cacerts

cacerts 来自 apt 包 ca-certificates-java(我也运行了 update-ca-certificates -f

如果我尝试 keytool -import -alias kafka -file certout -cacerts 它会给出错误 keytool error: java.io.IOException: Keystore was tampered with,or password was incorrect

在 kafka 的日志中,我看到每个经纪人都在喷这个:

INFO [Controller id=2,targetbrokerId=3] Failed authentication with 3.kafka.my.dns/10.1.1.1 (SSL handshake Failed) (org.apache.kafka.common.network.Selector)

(我已经更改了该日志中的 URL 和 IP 地址)

如何使用自签名证书运行 kafka?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)