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

如何从RHEL9虚拟机远程访问Win11上的OpenShift Local(CRC)

解决从RHEL9虚拟机远程连接Windows上OpenShift Local(CRC)的问题

核心问题分析

你遇到的两个错误根源:

  • 证书不匹配:CRC默认证书仅包含集群内部IP(10.217.4.1)和localhost,未包含Windows机器的外部IP(192.168.1.156)
  • 412错误:API服务器收到请求时,检查到Host头与证书中的SAN(Subject Alternative Names)不匹配,直接拒绝连接

步骤1:更新CRC API服务器证书,添加外部IP

  1. 进入CRC虚拟机内部:
crc ssh
  1. 切换到root权限:
sudo -i
  1. 配置API服务器使用自定义证书:
oc patch kubeconfigs.config.openshift.io/cluster --type=merge -p '{"spec":{"kubeAPIServer":{"servingCerts":{"namedCertificates":[{"names":["192.168.1.156"],"servingCertificate":{"name":"api-external-cert"}}]}}}}'
  1. 生成适配外部IP的自签证书:
openssl req -x509 -newkey rsa:4096 -keyout /tmp/tls.key -out /tmp/tls.crt -days 365 -nodes -subj "/CN=192.168.1.156" -addext "subjectAltName = IP:192.168.1.156"
  1. 创建证书Secret:
oc create secret tls api-external-cert --cert=/tmp/tls.crt --key=/tmp/tls.key -n openshift-config
  1. 重启API服务器使配置生效:
oc rollout restart deployment/kube-apiserver -n openshift-kube-apiserver

等待3-5分钟,确认API服务器重启完成。


步骤2:优化端口转发规则(可选)

当前用9000端口转发到6443,建议直接转发6443端口,避免端口不一致带来的潜在问题:

  1. 删除原有转发规则:
netsh interface portproxy delete v4tov4 listenaddress=192.168.1.156 listenport=9000
  1. 添加新的转发规则:
netsh interface portproxy add v4tov4 listenaddress=192.168.1.156 listenport=6443 connectaddress=127.0.0.1 connectport=6443
  1. 更新Windows防火墙规则,允许6443端口的入站TCP连接。

步骤3:在RHEL9虚拟机上配置证书信任(可选,避免不安全连接)

  1. 将CRC虚拟机中生成的/tmp/tls.crt复制到Windows机器,再传到RHEL9虚拟机。
  2. 添加证书到系统信任链:
sudo cp tls.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust extract

步骤4:测试远程登录

在RHEL9虚拟机执行登录命令:

# 如果用6443端口
oc login -u developer -p developer https://192.168.1.156:6443

# 若保留9000端口则用
oc login -u developer -p developer https://192.168.1.156:9000

此时证书匹配,无需跳过TLS验证,也不会再出现412错误。

内容的提问来源于stack exchange,提问作者aocferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:50:26