概述
k8s 证书自签
-
获取组件
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
-
创建一个名为TLS的文件夹,并将组件文件移动到该文件夹下,同时添加可习性权限
#创建TLS文件夹 mkdir -p ~/TLS #移动文件 mv cfssl_linux-amd64 ~/TLS/cfssl mv cfssljson_linux-amd64 ~/TLS/cfssljson mv cfssl-certinfo_linux-amd64 ~/TLS/cfssl-certinfo # 添加可执行权限 chmod +x cfssl-certinfo_linux-amd64 cfssljson_linux-amd64 cfssl_linux-amd64
-
使用命令行工具将模板配置生成到你自己的配置文件中
# 原理:证书需要证书签发机构(CA)来签发,而证书的签发机构(CA)需要相关的配置文件来定义 # 执行cfssl命令,并添加print-defaults config > 你自己的证书配置文件,将默认的CA配置 # 发送到你的CA配置文件中 cfssl print-defaults config > ca-config.json # 此处我需要生成kubernetes 证书签发机构,所以需将ca-congfig.json文件中的profiles下的 # www 改为 kubernetes,default下的生效时间需要修改的尽量大一点 vim ca-config.json { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } }
-
使用命令行工具将csr请求模板重定向到你自己的csr请求(证书请求文件)文件中
# 原理:证书签发是通过将公钥、国家、城市、域名等信息封装在csr请求中,发送给证书签发机构(CA), # 由证书签发机构(CA)进行签名,然后返回证书crt文件 cfssl print-defaults csr > ca-csr.json # 此处需要注意,需要为host添加可访问地址 # 添加"O": "CA", vim ca-csr.json { "CN": "kubernetes", "hosts": [ "192.168.0.179", "192.168.0.25", "192.168.0.93" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "Chengdu", "ST": "Chengdu", "O": "CA", "OU": "System" } ] }
-
签发CA证书
# 使用cfssl生成证书 cfssl gencert -initca ca-csr.json | cfssljson -bare ca # 生成证书如下,即:ca.pem [root@master TLS]# ls *.pem ca.pem ca-key.pem
-
创建server证书请求文件
# 通过ca-csr.json 生成 server-csr.json cat ca-csr.json > server-csr.json # server-csr.json 需要将集群的ip添加到hosts中,集群才能够利用https进行访问 vim server-csr.json { "CN": "kubernetes", "hosts": [ "10.0.0.1", "127.0.0.1", "kubernetes", "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster", "kubernetes.default.svc.cluster.local", "192.168.0.179", "192.168.0.25", "192.168.0.93" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "Shaanxi", "ST": "Xian", "O":"k8s", "OU":"system" } ] }
-
生成server证书
# 参数profile需要注意的是:需要和ca-config中的配置一致 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | cfssljson -bare server
-
创建admin用户证书请求文件
# 创建admin用户的证书签发请求 cat ca-csr.json > admin-csr.json # 修改CN 为 admin vim admin-csr.json { "CN": "admin", "hosts":[], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "Shaanxi", "ST": "Xian", "OU":"CA", "ST":"Xian" } ] }
-
签发admin用户证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin
- 个人能力一般,如有错误,还希望各位朋友不吝赐教,我尽快及时改正。
最后
以上就是开朗金针菇为你收集整理的k8s证书自签笔记的全部内容,希望文章能够帮你解决k8s证书自签笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复