【问题标题】:No subject alternative names matching IP address with Strimzi没有与 Strimzi 的 IP 地址匹配的主题替代名称
【发布时间】:2022-02-14 05:36:36
【问题描述】:

我已经用 Strimzi 配置了一个 Kafka 集群。我已启用 tls 身份验证,并已使用 NodePort 公开该服务。

之后,我导出了我的 ca 和密码以生成一个 JKS 以连接 Kafka。但问题是我遇到了下一个错误:

java.security.cert.CertificateException:没有主题替代名称 找到匹配的 IP 地址 172.26.195.44

导出密码和证书:

kubectl get secret kafka-cluster-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 --decode > ca.crt
kubectl get secret kafka-cluster-cluster-ca-cert -o jsonpath='{.data.ca\.password}' | base64 --decode > ca.password

为了生成 jks,我做了以下步骤:

keytool -genkey -alias kafka -keyalg RSA -keystore kafka.jks -keysize 2048
keytool -importkeystore -srckeystore kafka.jks -destkeystore kafka.jks -deststoretype pkcs12  

export CERT_FILE_PATH=ca.crt
export CERT_PASSWORD_FILE_PATH=ca.password
export KEYSTORE_LOCATION=kafka.jks
export PASSWORD=`cat $CERT_PASSWORD_FILE_PATH`
export CA_CERT_ALIAS=strimzi-kafka-cert

sudo keytool -importcert -alias $CA_CERT_ALIAS -file $CERT_FILE_PATH -keystore $KEYSTORE_LOCATION -keypass $PASSWORD
sudo keytool -list -alias $CA_CERT_ALIAS -keystore $KEYSTORE_LOCATION

我也尝试添加 -ext SAN=dns:test.abc.com,ip:172.26.195.44

对此有什么想法吗?

【问题讨论】:

  • 你好。 @Jakub 的回答能解决问题吗?
  • 我会尽快尝试

标签: kubernetes apache-kafka ssl-certificate jks strimzi


【解决方案1】:

如文档中所述,使用节点端口侦听器时,您必须默认禁用客户端中的主机名验证。原因是事先不知道节点地址以将其添加到证书中,并且包括所有节点通常不起作用,因为工作节点可能会来来去去。

如果您因为集群配置而预先知道节点地址,则可以使用 Kafka CR 中的 alternativeNames option 将它们添加到证书中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-23
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2019-09-23
    相关资源
    最近更新 更多