• <source id="kqqcq"></source>
  • <legend id="kqqcq"></legend>
    首頁
    讀書
    網課

    正文

    對于網站類的應用,網站管理員需要向權威證書簽發機構(CA)申請證書,這通常需要花費一定的費用,也有非營利的證書簽發機構,比如”Let’s Encrypt“可以為用戶免費簽發證書。但對于Kubernetes這類應用來講,它通常部署在企業內部,其管理面組件不需要暴露到公網,所以就不需要向外部的證書簽發機構申請證書,系統管理員就可以自已簽發證書供內部使用。

    本節我們使用簡單的例子,介紹一下如何使用openssl簽發證書,側重介紹簽發證書流程,具體證書配置還需要管理員根據實際情況填寫。

    kube-apiserver為例,它的啟動參數有3處需要配置證書:

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

    其中ca.crt即CA的證書,通常Kubernetes各個組件都配置相同的CA證書,server.crtkube-apiserver的證書,它將在與客戶端建立連接時發送給客戶端,由客戶端進行驗證,server.keykube-apiserver的私鑰,它不會發送給客戶端,僅用于解密客戶端發送的數據。

    為了便于理解,我們假設有兩位管理員參與證書簽發流程,一位CA管理員負責管理CA的憑證并為他人提供簽發證書的服務,一位管理員負責為kube-apiserver申請證書。

    生成CA憑證

    CA憑證包括一個私鑰和證書,私鑰由CA機構保存,不會對外公開,證書則是對外公開的。生成證書前面要先為CA機構創建一個私鑰。

    生成CA私鑰

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

    # 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...// 省略若干內容
    -----END RSA PRIVATE KEY-----

    生成CA證書

    接著使用openssl req命令生成一個證書:

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

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

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

    到此為止,CA管理員已經擁有了一個私鑰和證書,可以為kube-apiserver簽發證書了。

    生成kube-apiserver憑證

    要申請證書,kube-apiserver管理員需要準備一個證書簽發請求(申請書),為此,kube-apiserver管理員需要先為kube-apiserver生成一個私鑰。

    生成kube-apiserver私鑰

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

    # openssl genrsa -out server.key 2048

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

    生成kube-apiserver證書請求

    接著kube-apiserver管理員需要使用kube-apiserver的私鑰生成一個證書簽發請求,才可以提交給CA管理員進行簽發。

    使用openssl req -new命令可以創建一個證書請求文件:

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

    創建證書請求文件需要提供私鑰,然后根據命令行提示輸入相關信息,生成的請求文件存放于server.csr文件中。

    生成kube-apiserver證書

    kube-apiserver管理員創建好證書請求文件后,即可提次給CA管理員進行證書簽發了。CA管理員在簽發時
    需要使用CA的私鑰和證書:

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

    這樣簽發完的證書就會保存在server.crt文件中。

    證書文件后綴

    關于證書及私鑰文件,常常會使用約定俗成的文件名后綴。

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

    • *.crt: certificate的縮寫,往往表示證書文件;

    此外,*.csr文件為證書簽名請求文件,“Certificate Signing Request”的縮寫,該文件內含公鑰及公鑰所屬者信息,用于向CA機構申請簽名。

    參考資料



    上一篇: 沒有了
    下一篇: 沒有了
    圣賢書院
    肉人妻丰满av无码久久不卡_国产成人精品无码片区_国产69精品久久久久9999_国产内射XXXXX
  • <source id="kqqcq"></source>
  • <legend id="kqqcq"></legend>