Kubernetes证书相关(CFSSL)

  

 Kubernetes证书相关(CFSSL)

  
  

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

     

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-amd64
  curl - s - l - o/bin/cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
  curl - s - l - o/bin/cfssl-certinfo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
  chmod + x/bin/cfssl *  
  

集群相关证书类型

  

<强>客户端证书:用于服务端认证客户端,例如etcdctl, etcd代理,fleetctl,码头工人客户端
:<强>服务器证书服务端使用,客户端以此验证服务端身份,例如码头工人服务端,kube-apiserver
:<强>同行证书双向证书,用于etcd集群成员间通信

  

根据认证对象可以将证书分成三类:服务器证书<代码>服务器证书> 客户端证书> 同行cert> 服务器证书> 客户端证书>   

      <李> <代码> etcd>   <李> <代码> 节大师点需要标识apiserver服务的服务器证书,也需要客户cert连接etcd集群,这里也使用一个对等证书   <李> <代码> kubectl <代码>/<代码>棉布 <代码> kube-proxy> 客户端证书>   <李> <代码> kubelet> TLS引导> apiserver> 节大师点的<代码> controller-manager> 客户端证书> 服务器证书   
  

创建CA配置文件

  

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

  
 <代码> vim/opt/ssl/k8sca/ca-config.json
  {
  “签署”:{
  “默认”:{
  “到期”:“87600 h”
  },
  “简介”:{
  " kubernetes ": {
  “用法”:(
  “签名”,
  “关键加密”,
  “服务器身份验证”,
  “客户端身份验证”
  ),
  “到期”:“87600 h”
  }
  }
  }
  } 
  

创建CA证书签名请求

  
 <代码> vim/opt/ssl/k8sca/ca-csr.json
  
  {
  “CN”:“kubernetes”,
  “关键”:{
  “算法”:“rsa”,
  “大小”:2048
  },
  “名称”:[
  {
  “C”:“CN”,
  “L”:“北京”,
  “O”:“Ctyun”,
  “圣”:“北京”,
  “你”:“行动”
  })
  } 
  

生成CA和私钥

  

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

  
 <代码> $ cd/opt/ssl/k8sca/美元cfssl gencert -initca ca-csr。json | cfssljson光秃秃的ca
  $ ls
  ca-config。json ca.csr ca-csr。json ca-key。pem ca.pem  

Kubernetes证书相关(CFSSL)