如何解决 kubernetes pod 上的“Bad certificate”错误?

如何解决 kubernetes pod 上的“Bad certificate”错误?

我正在尝试设置一个 kubernetes pod,以便它连接到一个设备,特别是 F5 BIG-IP 设备。

部署似乎没问题,事实上我必须修改我在网上找到的代码片段。

当 Pod 尝试启动时,我收到错误。因此我开始调查:

运行kubectl logs <pod_name> -n <namespace> 返回错误:

REST call error: Get <URL>: x509: cannot validate certificate for <IP> because it doesn't contain any IP SANs

通过查看接口上的 wireshark 转储,我发现客户端向服务器发送了一个 TLS 1.2 警报(致命),其描述为“坏证书”。

所以我在网上查找,发现一些文章说这是 kubernetes 尝试连接服务器但无法识别的问题 - 至少我认为他们的意思是这样。建议的解决方法之一是应用 DNS 名称,因此我修改了文件/etc/hosts以便在部署 YAML 文件中使用 DNS 名称。

结果是错误信息变为:

REST call error: Get <URL>: dial tcp: lookup <hostname>: device or resource busy

对于可能存在什么问题以及如何解决它,您有什么想法吗?

这是一个测试环境,所以我不会介意 - 让我说 - “非正统”的方法,例如忽略证书检查,但如果有解决方案或解决方法最终可以投入生产,我将不胜感激。

感谢您提供的任何意见。

答案1

我找到了问题。似乎可以在部署 YAML 文件中设置一个--insecure=true标志。这迫使设备不检查证书,并成功连接到 F5 设备。

答案2

修改证书,并添加 IP 地址,作为 DNS 名称 SANS 之外的 SAN

  • 请参阅所附截图。
    • 在此处输入图片描述

相关内容