千家信息网

Kubernetes证书相关(CFSSL)

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,CFSSL是CloudFlare开源的一款PKI/TLS工具。 CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API 服务。 使用Go语言编写。Github 地
千家信息网最后更新 2025年12月01日Kubernetes证书相关(CFSSL)

CFSSL是CloudFlare开源的一款PKI/TLS工具。 CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API 服务。 使用Go语言编写。

Github 地址: https://github.com/cloudflare/cfssl
官网地址: https://pkg.cfssl.org/
参考地址:liuzhengwei521

curl -s -L -o /bin/cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64curl -s -L -o /bin/cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64curl -s -L -o /bin/cfssl-certinfo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64chmod +x /bin/cfssl*

集群相关证书类型

client certificate: 用于服务端认证客户端,例如etcdctl、etcd proxy、fleetctl、docker客户端
server certificate: 服务端使用,客户端以此验证服务端身份,例如docker服务端、kube-apiserver
peer certificate: 双向证书,用于etcd集群成员间通信

根据认证对象可以将证书分成三类:服务器证书server cert,客户端证书client cert,对等证书peer cert(表示既是server cert又是client cert),在kubernetes 集群中需要的证书种类如下:

  • etcd 节点需要标识自己服务的server cert,也需要client cert与etcd集群其他节点交互,当然可以分别指定2个证书,也可以使用一个对等证书
  • master 节点需要标识 apiserver服务的server cert,也需要client cert连接etcd集群,这里也使用一个对等证书
  • kubectl calico kube-proxy 只需要client cert,因此证书请求中 hosts 字段可以为空
  • kubelet证书比较特殊,不是手动生成,它由node节点TLS BootStrapapiserver请求,由master节点的controller-manager 自动签发,包含一个client cert 和一个server cert

创建CA配置文件

配置证书生成策略,规定CA可以颁发那种类型的证书

vim /opt/ssl/k8sca/ca-config.json{  "signing": {    "default": {      "expiry": "87600h"    },    "profiles": {      "kubernetes": {        "usages": [            "signing",            "key encipherment",            "server auth",            "client auth"        ],        "expiry": "87600h"      }    }  }}

创建CA证书签名请求

vim /opt/ssl/k8sca/ ca-csr.json{"CN": "kubernetes","key": {    "algo": "rsa",    "size": 2048},"names": [    {        "C": "CN",        "L": "BeiJing",        "O": "Ctyun",        "ST": "BeiJing",                    "OU": "ops"    }    ]}

生成CA和私钥

生成CA所必需的文件ca-key.pem(私钥)和ca.pem(证书),还会生成ca.csr(证书签名请求),用于交叉签名或重新签名。

$ cd /opt/ssl/k8sca/$ cfssl gencert -initca ca-csr.json | cfssljson -bare ca$ lsca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem
证书 服务 节点 集群 生成 客户 客户端 地址 对等 工具 文件 标识 类型 认证 配置 验证 特殊 又是 双向 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 自动化的嵌入式系统是软件开发吗 数据库对象转json 校园网络安全培训感悟 职业学院软件开发工资一般多少 高中英语作文网络安全 网络技术架构分为三层 数据库查询表格的命令 我国在哪年成立网络安全小组 俄罗斯以叛国罪逮捕网络安全巨头 掌视界网络技术有限公司怎么样 服务器也能进安全模式吗 塔城存储服务器维保公司 软件开发人员未来方向 裁决战歌服务器等级怎么降 仁王2服务器 广告数据库结构图 本地调试接口远程服务器403 数据库字段前缀 一个系统多少张数据库表合理 网络安全知识有哪些手抄报 英国软件开发工资 新疆的网络安全公司 北京盛邦互联网科技有限公司 网络安全必须了解的几个网站 云服务器中安装本地打印机 数据库设计id和编码的区别 学软件开发好的学校 小贷+科技的互联网金融平台 网络安全值班报告 数据库营销一般经历数据采集
0