二进制安装kubernetes v1.11.2 (浏览器访问 kube-apiserver 安全端口)

参考:

https://github.com/opsnull/follow-me-install-kubernetes-cluster/blob/master/A.%E6%B5%8F%E8%A7%88%E5%99%A8%E8%AE%BF%E9%97%AEkube-apiserver%E5%AE%89%E5%85%A8%E7%AB%AF%E5%8F%A3.md

-----------------------------------------------------------------------------------------------------------------------------------------------------

浏览器访问 kube-apiserver 的安全端口 8443 时,提示证书不被信任。下面使用 firefox 浏览器

 

这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置为永久信任

 设置完成后,再次访问,提示 401, 未授权的访问

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

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

[root@k8s-m1 ~]# cd /opt/k8s/cert/
[root@k8s-m1 cert]# ls admin*.pem ca*.pem
admin-key.pem  admin.pem  ca-key.pem  ca.pem
[root@k8s
-m1 cert]# openssl pkcs12 -export -out admin.pfx -inkey admin-key.pem -in admin.pem -certfile ca.pem Enter Export Password: Verifying - Enter Export Password:
[root@k8s
-m1 cert]# ls admin.pfx admin.pfx

 

使用 firefox 浏览器导入  admin.pfx 证书:

再次打开  https://192.168.56.6:8443/

 

使用qq浏览器时,标签栏一直在加载状态,不显示任何内容,直接进入qq浏览器设置页面,导入 admin.pfx 即可

重新打开 https://192.168.56.6:8443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login,进入下面的页面

 

 客户端选择证书的原理:

1.证书选择是在客户端和服务端 SSL/TLS 握手写上阶段商定的

2.服务端如果要求客户端提供证书,则在握手时会向客户端发送一个它接收的 CA 列表

3.客户端查找它的证书列表(一般是操作系统的证书,对于mac为keychain),看有没有被 CA 签名的证书,如果有,则将他们提供给用户选择(证书的私钥)

4.用户选择一个证书和私钥,然后客户端使用它和服务端通信

posted on 2018-11-14 20:42  冰冰爱学习  阅读(441)  评论(0编辑  收藏  举报

导航