k3s 證書過期解決方法

測試發現k3s使用一年後出現https tls hand error的問題,重新生成證書也不行,只能通過源碼編譯修重新安裝k3s
環境: ubuntu 16.04
docker 18.06.3

一、安裝git(默認應該已經安裝如果沒有請執行下面的命令)
sudo apt install -y git

二、clone源碼,並切換分支(我這裏用的是v1.0.1的版本)
git clone https://github.com/rancher/k3s.git
cd k3s
git checkout -b v1.0.1

三、修改源碼中證書的部分
主要是3個文件,修改如圖
1.第一個文件
vendor/github.com/rancher/dynamiclistener/cert/cert.go
k3s 證書過期解決方法
k3s 證書過期解決方法
k3s 證書過期解決方法
官方下面雖然修正了100年但是好像沒說效果

2.第二個文件 vendor/github.com/rancher/dynamiclistener/factory/cert_utils.go

k3s 證書過期解決方法
k3s 證書過期解決方法

3.第3個文件 scripts/version.sh ,因爲會校驗文件sha值,註釋4-7行
k3s 證書過期解決方法

四、編譯(確保可以聯網,因爲是用docker編譯的)
1.安裝make
apt install -y make

2.直接執行make命令,編譯時間比較長請耐心等待

3.完成都的文件在dist/artifacts

五、驗證
重新安裝k3s(安裝部分請參考k3s安裝),如果用的官方的離線包這裏有個小bug 需要tag一下image
docker tag k8s.gcr.io/pause:3.1 rancher/pause:3.1

驗證的結果
k3s 證書過期解決方法

k3s 證書過期解決方法

至此可以安心用100年了,不用每年都去升級,當然建議和官方一樣每年升級一次,畢竟漏洞比較多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章