CFSSL是CloudFlare的PKI / TLS瑞士×××。它既是命令行工具,也是用于簽名,驗(yàn)證和捆綁TLS證書的HTTP API服務(wù)器.
1.下載安裝CFSSL(用于簽名,驗(yàn)證和捆綁TLS證書的HTTP API工具)(master節(jié)點(diǎn))
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
mv cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 /usr/local/bin/cfssljson
chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssl-certinfo /usr/local/bin/cfssljson
大洼網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),大洼網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為大洼千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的大洼做網(wǎng)站的公司定做!
2創(chuàng)建CA(Certificate Authority)(master節(jié)點(diǎn))
mkdir /root/ssl
cd /root/ssl
cfssl print-defaults config > config.json # 默認(rèn)配置模板
cfssl print-defaults csr > csr.json #默認(rèn)csr請求模板
# 根據(jù)config.json文件的格式創(chuàng)建如下的ca-config.json文件
# 過期時間設(shè)置成了 87600h
cat > ca-config.json <<EOF
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "87600h"
}
}
}
}
EOF
知識點(diǎn):
ca-config.json:可以定義多個 profiles,分別指定不同的過期時間、使用場景等參數(shù);后續(xù)在簽名證書時使用某個 profile;此實(shí)例只有一個kubernetes模板。
signing:表示該證書可用于簽名其它證書;生成的 ca.pem 證書中 CA=TRUE;
server auth:表示client可以用該 CA 對server提供的證書進(jìn)行驗(yàn)證;
client auth:表示server可以用該CA對client提供的證書進(jìn)行驗(yàn)證;
注意標(biāo)點(diǎn)符號,最后一個字段一般是沒有都好的。
3 創(chuàng)建證書請求
cat > ca-csr.json <<EOF
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "GuangDong",
"L": "ShenZhen",
"O": "k8s",
"OU": "System"
}
],
"ca": {
"expiry": "87600h"
}
}
EOF
知識點(diǎn):
"CN":Common Name,kube-apiserver 從證書中提取該字段作為請求的用戶名 (User Name)
"O":Organization,kube-apiserver 從證書中提取該字段作為請求用戶所屬的組 (Group)
4 生成CA證書和私鑰
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
將會生成 ca-key.pem(私鑰) ca.pem(公鑰)
知識點(diǎn): cfssljson只是整理json格式,-bare主要的意義在于命名 (個人見解,以便理解,勿噴)
5 創(chuàng)建kubernetes證書請求文件
cat > kubernetes-csr.json <<EOF
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"10.192.44.129",
"10.192.44.128",
"10.192.44.126",
"10.192.44.127",
"10.254.0.1",
"*.kubernetes.master",
"localhost",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "GuangDong",
"L": "ShenZhen",
"O": "k8s",
"OU": "System"
}
]
}
EOF
知識點(diǎn):
這個證書目前專屬于 apiserver加了一個 *.kubernetes.master 域名以便內(nèi)部私有 DNS 解析使用(可刪除);至于很多人問過 kubernetes 這幾個能不能刪掉,答案是不可以的;因?yàn)楫?dāng)集群創(chuàng)建好后,default namespace 下會創(chuàng)建一個叫 kubenretes 的 svc,有一些組件會直接連接這個 svc 來跟 api 通訊的,證書如果不包含可能會出現(xiàn)無法連接的情況;其他幾個 kubernetes 開頭的域名作用相同
hosts包含的是授權(quán)范圍,不在此范圍的的節(jié)點(diǎn)或者服務(wù)使用此證書就會報(bào)證書不匹配錯誤。
10.254.0.1是指kube-apiserver 指定的 service-cluster-ip-range 網(wǎng)段的第一個IP。
#hosts配置區(qū)域,即一個證書的網(wǎng)站可以是*.youku.com也是可以是*.google.com
6 kubernetes證書和私鑰
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes kubernetes-csr.json | cfssljson -bare kubernetes
知識點(diǎn): -config 引用的是模板中的默認(rèn)配置文件,-profiles是指定特定的使用場景,比如ca-config.json中的kubernetes區(qū)域
7 創(chuàng)建admin證書
cat > admin-csr.json <<EOF
{
"CN": "admin",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "GuangDong",
"L": "ShenZhen",
"O": "system:masters",
"OU": "System"
}
]
}
EOF
8 生成admin證書和私鑰
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin
知識點(diǎn):
這個admin 證書,是將來生成管理員用的kube config 配置文件用的,現(xiàn)在我們一般建議使用RBAC 來對kubernetes 進(jìn)行角色權(quán)限控制, kubernetes 將證書中的CN 字段 作為User, O 字段作為 Group
分享文章:CFSSL使用方法重新整理說明
當(dāng)前網(wǎng)址:http://aaarwkj.com/article36/gjdhsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、營銷型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)、、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)