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

二進位制安裝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 格式的證書:

[[email protected] ~]# cd /opt/k8s/cert/
[[email protected]-m1 cert]# ls admin*.pem ca*.pem
admin-key.pem  admin.pem  ca-key.pem  ca.pem
[[email protected]
-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:
[[email protected]
-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.使用者選擇一個證書和私鑰,然後客戶端使用它和服務端通訊