You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microstack添加计算节点失败:hostname 'localhost'与证书中的主机名/IP不匹配

Microstack添加计算节点失败:hostname 'localhost'与证书中的主机名/IP不匹配

别担心,这个问题其实是典型的SSL证书主机名不匹配导致的,咱们一步步来排查解决:

问题根源分析

你遇到的ssl.SSLCertVerificationError是因为计算节点在连接控制节点时,使用了localhost作为目标地址,但你的控制节点SSL证书的**Subject Alternative Name(SAN)**里只包含了black(主机名)和192.168.1.21(IP),并没有localhost,所以证书验证环节直接失败了。

解决方案步骤

1. 修正计算节点连接控制节点的地址

你在添加计算节点时,应该使用控制节点的实际主机名black或者IP192.168.1.21,而不是localhost。检查你执行的添加节点命令,把其中指向控制节点的地址替换成正确的主机名或IP。

比如,如果之前的命令是类似:

microstack add-compute --control-node localhost

要改成:

microstack add-compute --control-node black
# 或者用IP
microstack add-compute --control-node 192.168.1.21

2. 确保计算节点能解析控制节点的主机名

如果选择用主机名black连接,需要在计算节点的/etc/hosts文件中添加一行解析规则:

echo "192.168.1.21    black" | sudo tee -a /etc/hosts

这样计算节点就能正确把black映射到控制节点的IP了。

3. 验证控制节点服务的绑定地址

检查控制节点上Microstack服务的监听地址,确保它们没有只绑定到localhost(127.0.0.1)。你可以查看snap相关的配置目录(比如/var/snap/microstack/common/etc/下的服务配置文件),确认服务的监听地址是192.168.1.21或者0.0.0.0(允许所有IP访问)。

4. 备选:更新控制节点证书(非必要,优先前几步)

如果因为某些特殊需求必须用localhost连接,你可以更新控制节点的SSL证书,把localhost和127.0.0.1加入SAN:

sudo microstack config set ssl.cert_subject_alt_names "DNS:black,DNS:localhost,IP:192.168.1.21,IP:127.0.0.1"
# 重启Microstack服务生效
sudo snap restart microstack

不过对于多节点部署来说,更推荐使用实际的节点IP或主机名,这样更符合生产环境的配置逻辑。

额外排查建议

  • 在计算节点上测试与控制节点的网络连通性:
    ping 192.168.1.21
    ping black
    
  • 用curl测试控制节点的API服务(临时忽略证书验证看是否能连通):
    curl -k https://192.168.1.21:5000/v3
    

备注:内容来源于stack exchange,提问作者Johan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:28:09