Kubernetes 当我使用exec RestApi时,我收到了错误消息";x509:证书的有效期为127.0.0.1,而不是xx.xx.xx.xx“;

Kubernetes 当我使用exec RestApi时,我收到了错误消息";x509:证书的有效期为127.0.0.1,而不是xx.xx.xx.xx“;,kubernetes,Kubernetes,首先,我使用https进行测试,但得到400:upgrade响应 然后我使用websocket进行测试,当我使用NewClient()或Dialer.Dial(url,req.Header)创建客户端连接时,会得到“无法连接到控制台:x509:证书对127.0.0.1有效,而不是xx.xx.xx.xx” 是不是跟不记名代币有关 我把它放在请求的标题中 wsurl := "wss://xx.xx.xx.xx:8080/r/projects/1a92/kubernetes:6443/api/v1/n

首先,我使用https进行测试,但得到400:upgrade响应

然后我使用websocket进行测试,当我使用NewClient()或Dialer.Dial(url,req.Header)创建客户端连接时,会得到“无法连接到控制台:x509:证书对127.0.0.1有效,而不是xx.xx.xx.xx”

是不是跟不记名代币有关

我把它放在请求的标题中

wsurl := "wss://xx.xx.xx.xx:8080/r/projects/1a92/kubernetes:6443/api/v1/namespaces/NM/pods/testPod-546cdd8d79-7h8nv/exec?command=ls&container=testPod&stderr=true&stdin=true&stdout=true&tty=false"

u, err := neturl.Parse(wsurl)

rawConn, err := net.Dial("tcp", u.Host)

wsHeaders := http.Header{
        "Authorization":                   {"Bearer "+env_bearer_token},
        "Origin":                   {"https://xx.xx.xx.xx:8080/r/projects/1a92/kubernetes:6443"},
        "Sec-WebSocket-Extensions": {"permessage-deflate; client_max_window_bits, x-webkit-deflate-frame"},

    }

wsConn, resp, err := websocket.NewClient(rawConn, u, wsHeaders, 1024, 1024)
有什么问题吗

是不是跟不记名代币有关

否,与错误所说的内容完全相关:X.509证书没有
SAN
条目,用于输出任何IP。有几种方法可以解决这种情况:

  • 从使用IP地址更新到证书覆盖的主机名
  • 重新颁发证书以将该IP包括在其SAN列表中
  • 更新您的,以提供一个具有
    不安全性的skipverify:true
    并抓住机会