kubernetes 浏览器访问kube-apiserver安全端口

原创
半兽人 发表于: 2018-09-17   最后更新时间: 2019-08-14 21:12:05  
{{totalSubscript}} 订阅, 7,839 游览

A.浏览器访问 kube-apiserver 安全端口

浏览器访问 kube-apiserver 的安全端口 6443 时,提示证书不被信任:
screenshot
这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置永久信任。对于 Mac,操作如下:

screenshot
再次访问 https://172.27.129.105:6443/ , 已信任,但提示 401,未授权的访问:

screenshot
我们需要给浏览器生成一个 client 证书,访问 apiserver 的 6443 https 端口时使用。

这里使用部署 kubectl 命令行工具时创建的 admin 证书、私钥和上面的 ca 证书,创建一个浏览器可以使用 PKCS#12/PFX 格式的证书:

[k8s@kube-node1 ~]$ openssl pkcs12 -export -out admin.pfx -inkey admin-key.pem -in admin.pem -certfile ca.pem

将创建的 admin.pfx 导入到系统的证书中。对于 Mac,操作如下:

screenshot
重启浏览器,再次访问 https://172.27.129.105:6443/ ,提示选择一个浏览器证书,这里选中上面导入的 admin.pfx:

screenshot
这一次,被授权访问 kube-apiserver 的安全端口:

screenshot

客户端选择证书的原理

  1. 证书选择是在客户端和服务端 SSL/TLS 握手协商阶段商定的;
  2. 服务端如果要求客户端提供证书,则在握手时会向客户端发送一个它接受的 CA 列表;
  3. 客户端查找它的证书列表(一般是操作系统的证书,对于 Mac 为 keychain),看有没有被 CA 签名的证书,如果有,则将它们提供给用户选择(证书的私钥);
  4. 用户选择一个证书私钥,然后客户端将使用它和服务端通信;

参考

更新于 2019-08-14

方便的时候整理一下关于prometheus的部署呢

谢谢,给大佬端茶。哈哈

没有讲ingress的章节么

我下周整理一下。

好的,谢谢,期待你的整理。

hello,冒昧的请问一下,关于这个ingress的资料整理得咋样了呢

今晚发布上去!

好的,发布了麻烦给个链接哈,麻烦了,多谢。

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章