好了,所以我挑釁不是安全專家,並與此爭奪現在幾天,如何創建工作者證書的Coreos kubernetes AWS集羣
我使用Coreos kube-aws
雲的形成模板製造商,和我想我的部署集羣生產,但因爲這個小評論:
生產注:KUBE-AWS生成的TLS密鑰和證書不應該被用來部署生產Kubernetes集羣。每個組件證書僅有效期爲90天,而CA有效期爲365天。如果部署生產Kubernetes集羣,考慮建立獨立於本工具第一
我需要生成我自己的鑰匙PKI,但我似乎不知道如何做到這一點,它們的文檔(恕我直言的人誰不一個專家)如果你不熟悉,那麼這個人真是太離譜了。
所以,我的要求是,像這樣:
- 我想CERT /鍵,持續X年(長時間)
- 我想他們整個域的有效* .company.com(我不在乎內核僅用於kubectl的管理密鑰)
- 我想重複這個過程2次(一次用於生產,一次用於QA /暫存)並最終擁有2組憑證
- 覆蓋默認憑證ntials並使用
kube-aws up --export
得到userdata
我需要爲我的集羣
我的問題是:
- 如何使管理員證書有效期爲* .company.com
- 在文檔他們說你需要爲集羣中的每個節點創建一個
key-pair
......什麼!kube-aws render
只會生成1個工人key-pair
所以最新的!
現在好了爲 「好玩」 的一部分:
$ openssl genrsa -out ca-key.pem 2048 $ openssl req -x509 -new -nodes -key ca-key.pem -days 10000 -out ca.pem -subj "/CN=kube-ca"
我猜測,-days 10000
解決了我的第一個問題,到期。涼爽
API-服務器密鑰對
OpenSSL的。CNF
[req] req_extensions = v3_req distinguished_name = req_distinguished_name [req_distinguished_name] [ v3_req ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = kubernetes DNS.2 = kubernetes.default DNS.3 = kubernetes.default.svc DNS.4 = kubernetes.default.svc.cluster.local is it DNS.5 = mycompany.com or DNS.5 = *.mycompany.com IP.1 = 10.3.0.1 IP.2 = 10.0.0.50
和運行命令
$ openssl genrsa -out apiserver-key.pem 2048 $ openssl req -new -key apiserver-key.pem -out apiserver.csr -subj "/CN=kube-apiserver" -config openssl.cnf $ openssl x509 -req -in apiserver.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out apiserver.pem -days 3650 -extensions v3_req -extfile openssl.cnf
精細,除了subjectAltName
,我不知道如何使用我可能已經做了一些嘗試,看看什麼工作很酷。
工人密鑰對
這裏就是我很堅持,那我應該用這句話做:
This procedure generates a unique TLS certificate for every Kubernetes worker node in your cluster
精細保障,一切但這的確是不現實的,矯枉過正國際海事組織一個亞馬遜自動縮放組
因此,如果我不想爲每個節點有一個密鑰,但1個密鑰的所有,我的worker-openssl.cnf
應該看起來怎麼樣?
[req] req_extensions = v3_req distinguished_name = req_distinguished_name [req_distinguished_name] [ v3_req ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] IP.1 = $ENV::WORKER_IP <- what am i supposed to do here?
在這之後創建的管理員密鑰對是直線前進。
請幫忙!
在這裏完全相同的問題。請讓我知道如果你在外面找到答案請! –
是的,我有我今天會發佈一個解決方案 – Gleeb
任何運氣找到解決方案@Gleeb? – fiunchinho