溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Kubernetes證書(shū)簽發(fā)流程是什么

發(fā)布時(shí)間:2022-01-07 15:23:57 來(lái)源:億速云 閱讀:217 作者:iii 欄目:云計(jì)算

這篇文章主要介紹“Kubernetes證書(shū)簽發(fā)流程是什么”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Kubernetes證書(shū)簽發(fā)流程是什么”文章能幫助大家解決問(wèn)題。

對(duì)于網(wǎng)站類(lèi)的應(yīng)用,網(wǎng)站管理員需要向權(quán)威證書(shū)簽發(fā)機(jī)構(gòu)(CA)申請(qǐng)證書(shū),這通常需要花費(fèi)一定的費(fèi)用,也有非營(yíng)利的證書(shū)簽發(fā)機(jī)構(gòu),比如”Let's Encrypt“可以為用戶(hù)免費(fèi)簽發(fā)證書(shū)。但對(duì)于Kubernetes這類(lèi)應(yīng)用來(lái)講,它通常部署在企業(yè)內(nèi)部,其管理面組件不需要暴露到公網(wǎng),所以就不需要向外部的證書(shū)簽發(fā)機(jī)構(gòu)申請(qǐng)證書(shū),系統(tǒng)管理員就可以自已簽發(fā)證書(shū)供內(nèi)部使用。

本節(jié)我們使用簡(jiǎn)單的例子,介紹一下如何使用openssl簽發(fā)證書(shū),側(cè)重介紹簽發(fā)證書(shū)流程,具體證書(shū)配置還需要管理員根據(jù)實(shí)際情況填寫(xiě)。

kube-apiserver為例,它的啟動(dòng)參數(shù)有3處需要配置證書(shū):

--client-ca-file=/yourdirectory/ca.crt
--tls-cert-file=/yourdirectory/server.crt
--tls-private-key-file=/yourdirectory/server.key

其中ca.crt即CA的證書(shū),通常Kubernetes各個(gè)組件都配置相同的CA證書(shū),server.crtkube-apiserver的證書(shū),它將在與客戶(hù)端建立連接時(shí)發(fā)送給客戶(hù)端,由客戶(hù)端進(jìn)行驗(yàn)證,server.keykube-apiserver的私鑰,它不會(huì)發(fā)送給客戶(hù)端,僅用于解密客戶(hù)端發(fā)送的數(shù)據(jù)。

為了便于理解,我們假設(shè)有兩位管理員參與證書(shū)簽發(fā)流程,一位CA管理員負(fù)責(zé)管理CA的憑證并為他人提供簽發(fā)證書(shū)的服務(wù),一位管理員負(fù)責(zé)為kube-apiserver申請(qǐng)證書(shū)。

生成CA憑證

CA憑證包括一個(gè)私鑰和證書(shū),私鑰由CA機(jī)構(gòu)保存,不會(huì)對(duì)外公開(kāi),證書(shū)則是對(duì)外公開(kāi)的。生成證書(shū)前面要先為CA機(jī)構(gòu)創(chuàng)建一個(gè)私鑰。

生成CA私鑰

使用openssl genrsa 命令便可以生成一個(gè)私鑰:

# openssl genrsa -out ca.key 2048
Generating RSA private key, 2048 bit long modulus
.....................................................................+++
........................................+++
e is 65537 (0x10001)

生成的私鑰存在ca.key文件中,可以使用cat命令查看:

# ls
ca.key
# cat ca.key 
-----BEGIN RSA PRIVATE KEY-----
MIIEog...// 省略若干內(nèi)容
-----END RSA PRIVATE KEY-----

生成CA證書(shū)

接著使用openssl req命令生成一個(gè)證書(shū):

# openssl req -x509 -new -nodes -key ca.key -subj "/CN=ca" -days 10000 -out ca.crt

生成的證書(shū)存在ca.crt文件中,可以使用openssl x509命令查看:

# openssl x509 -in ca.crt -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
...

到此為止,CA管理員已經(jīng)擁有了一個(gè)私鑰和證書(shū),可以為kube-apiserver簽發(fā)證書(shū)了。

生成kube-apiserver憑證

要申請(qǐng)證書(shū),kube-apiserver管理員需要準(zhǔn)備一個(gè)證書(shū)簽發(fā)請(qǐng)求(申請(qǐng)書(shū)),為此,kube-apiserver管理員需要先為kube-apiserver生成一個(gè)私鑰。

生成kube-apiserver私鑰

kube-apiserver生成私鑰與前面為CA生成私鑰的方法完全一致,同樣可以使用openssl genrsa完成:

# openssl genrsa -out server.key 2048

生成的私鑰存放于server.key中。

生成kube-apiserver證書(shū)請(qǐng)求

接著kube-apiserver管理員需要使用kube-apiserver的私鑰生成一個(gè)證書(shū)簽發(fā)請(qǐng)求,才可以提交給CA管理員進(jìn)行簽發(fā)。

使用openssl req -new命令可以創(chuàng)建一個(gè)證書(shū)請(qǐng)求文件:

# openssl req -new -key server.key -out server.csr

創(chuàng)建證書(shū)請(qǐng)求文件需要提供私鑰,然后根據(jù)命令行提示輸入相關(guān)信息,生成的請(qǐng)求文件存放于server.csr文件中。

生成kube-apiserver證書(shū)

當(dāng)kube-apiserver管理員創(chuàng)建好證書(shū)請(qǐng)求文件后,即可提次給CA管理員進(jìn)行證書(shū)簽發(fā)了。CA管理員在簽發(fā)時(shí) 需要使用CA的私鑰和證書(shū):

# openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 
Signature ok

這樣簽發(fā)完的證書(shū)就會(huì)保存在server.crt文件中。

證書(shū)文件后綴

關(guān)于證書(shū)及私鑰文件,常常會(huì)使用約定俗成的文件名后綴。

  • *.key: 往往表示私鑰文件;

  • *.crt: certificate的縮寫(xiě),往往表示證書(shū)文件;

此外,*.csr文件為證書(shū)簽名請(qǐng)求文件,“Certificate Signing Request”的縮寫(xiě),該文件內(nèi)含公鑰及公鑰所屬者信息,用于向CA機(jī)構(gòu)申請(qǐng)簽名。

關(guān)于“Kubernetes證書(shū)簽發(fā)流程是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI