1. 程式人生 > >二進制安裝kubernetes v1.11.2 (瀏覽器訪問 kube-apiserver 安全端口)

二進制安裝kubernetes v1.11.2 (瀏覽器訪問 kube-apiserver 安全端口)

dashboard verify image 命令行工具 將他 export 授權 apiserver blob

參考:

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.用戶選擇一個證書和私鑰,然後客戶端使用它和服務端通信

二進制安裝kubernetes v1.11.2 (瀏覽器訪問 kube-apiserver 安全端口)