「Kubernetes」- 使用 Chrome 访问 Dashboard 时,出现 NET::ERR_CERT_INVALID 错误

  CREATED BY JENKINSBOT

问题描述

某一天,使用 Chrome 访问 Dashboard 时,产生 NET::ERR_CERT_INVALID 错误。

以前出现 NET::ERR_CERT_AUTHORITY_INVALID 错误,还能通过浏览器 AdvancedProceed to xxxx (unsafe) 继续访问。

原因分析

类似的问题都是因为证书错误导致的。而且 Dashbaord 的证书是自签名的,也会导致浏览器提示证书错误。

根本原因在于:在集群部署时,我们使用自签名证书,导致后续的自动创建的证书都属于自签名证书。

解决方案

补充说明:以前我们尝试重新生成 Dashboard 证书来解决问题,但繁琐且不正规(因此我们从笔记中删除该方案)。

如果想从根本上解决该问题,那么需要重新签发集群证书,这样才能从根本上解决相关问题。但是成本过高,而且要经过测试验证。

我们选择简单的方法:直接定义 Ingress 资源,并使用 nginx.ingress.kubernetes.io/backend-protocol: “HTTPS” 注解来反向代理 Dashboard 的 HTTPS 端口,由于 Nginx Ingress 默认 nginx.ingress.kubernetes.io/proxy-ssl-verify 为 off,因此不会检查后端 Dashboard 的 TLS 证书,所以也未出现任何错误。

参考 Dashboard 笔记的「通过 Ingress 暴露 Dashboard 服务」部分,以获取 Ingress 资源的配置方法。

参考文献

i can access dashboard in Linux with https://masternodeIP:port with googlechrome, but can’t do that in Windows. #2954