Kubernetes/K8s CFSSL 证书相关
发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,各节点访问之间使用证书验证可靠性work node --> load banlancer -->api server -->etcd<--etcdworknode 访问load banlancer 需
千家信息网最后更新 2024年11月21日Kubernetes/K8s CFSSL 证书相关
各节点访问之间使用证书验证可靠性
work node --> load banlancer -->api server -->etcd<--etcd
worknode 访问load banlancer 需要验证证书的有限性 所以需要同一个ca根证书,同理其他也是 etcd 由于需要互访所以是双向证书
1,使用CFSSL签发生成证书
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集群成员间通信
创建生成CA根证书
##生成默认CA配置mkdir /opt/sslcd /opt/sslcfssl print-defaults config > ca-config.jsoncfssl print-defaults csr > ca-csr.json####################修改ca-config.json,分别配置针对三种不同证书类型的profile,其中有效期43800h为5年{"signing": { "default": { "expiry": "43800h" }, "profiles": { "server": { "expiry": "43800h", "usages": [ "signing", "key encipherment", "server auth" ] }, "client": { "expiry": "43800h", "usages": [ "signing", "key encipherment", "client auth" ] }, "peer": { "expiry": "43800h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } }}}##字段说明##ca-config.json:可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个 profile;##signing:表示该证书可用于签名其它证书;生成的 ca.pem 证书中 CA:TRUE;##server auth:表示client可以用该 CA 对server提供的证书进行验证;##client auth:表示server可以用该CA对client提供的证书进行验证;
修改ca-csr.json
{"CN": "Self Signed Ca","key": { "algo": "rsa", "size": 2048},"names": [ { "C": "CN", "L": "SH", "O": "Netease", "ST": "SH", "OU": "OT" } ]}#######字段说明"CN":Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name);"O":Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组 (Group);"C": Country, 国家"L": Locality,地区,城市"O": Organization Name,组织名称,公司名称"OU": Organization Unit Name,组织单位名称,公司部门"ST": State,州,省
生成CA证书和私钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca##生成ca.pem、ca.csr、ca-key.pem(CA私钥,需妥善保管)
签发Server Certificate,client Certificate,peer Certificate,注其中的hosts 地址 和cn名称 ,其他正文格式都是一样
cfssl print-defaults csr > server.jsonvim server.json{ "CN": "Server", "hosts": [ "192.168.1.1" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "SH", "ST": "SH" } ]}##生成服务端证书和私钥cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server.json | cfssljson -bare server
验证证书
openssl x509 -in server.pem -text -nooutCertificate: Data: Version: 3 (0x2) Serial Number: 6f:25:cf:8d:42:1e:c8:2d:b8:78:95:d1:f4:0a:25:8e:bb:48:53:9d Signature Algorithm: sha256WithRSAEncryption Issuer: C=CN, ST=San Francisco, L=Chongqing, CN=test Validity Not Before: Feb 13 11:35:00 2019 GMT Not After : Feb 13 11:35:00 2020 GMT Subject: C=US, ST=San Francisco, L=CA, CN=etcd Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b6:79:4d:af:27:a0:c9:0e:8a:d0:8c:25:d4:12: f7:22:21:45:ce:80:25:e5:c6:0b:47:fe:ba:79:c7: aa:14:d6:51:be:45:2d:92:49:a5:07:37:36:66:9b: 38:a9:9c:9c:0b:cf:91:45:55:7a:20:43:ad:64:09: 31:bb:25:30:ba:50:20:fe:3b:4e:cf:8c:21:bc:43: d8:cf:f4:1b:d6:ed:3b:3e:9d:53:74:89:db:17:4b: a7:a2:01:bb:00:36:74:95:a7:cf:0a:24:a1:0d:62: 6d:47:d3:f4:3a:93:e4:15:df:20:af:59:fb:5f:77: 9b:76:45:ad:68:24:69:d3:1a:cf:75:ef:3f:6d:19: d6:3c:54:76:ec:1b:a3:98:bf:e3:d6:d7:a5:f8:ec: 12:47:ee:06:ab:ae:31:8b:83:be:43:6e:b9:41:2d: 82:ff:c6:20:e6:2c:69:d5:81:d4:9a:07:b2:e4:9a: 40:af:e9:ed:98:4e:c0:27:ef:7c:14:86:cf:6e:6e: 18:98:1c:d1:d9:dd:4e:a3:10:d3:63:f9:00:d6:3b: 04:e9:47:54:af:87:db:83:d5:8a:8a:05:f4:e8:38: 4d:64:e7:ae:b4:5f:3f:6a:18:c8:87:32:7d:24:46: 72:a8:4a:7f:dd:5c:5b:cf:6a:2f:af:88:bb:b2:d8: 02:af Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: B7:EF:2C:02:18:05:D0:7E:30:63:BB:F9:8F:52:B4:1E:1F:57:4A:C8 X509v3 Authority Key Identifier: keyid:3C:58:00:7D:E0:2B:C1:AE:81:88:58:F1:FB:95:45:88:33:28:F7:00 X509v3 Subject Alternative Name: IP Address:172.19.0.203, IP Address:172.19.0.204, IP Address:172.19.0.205 Signature Algorithm: sha256WithRSAEncryption 35:8f:af:a7:03:c3:8f:5e:42:ec:10:af:33:c8:4e:b1:0e:d5: f7:3e:b2:5f:5d:cf:b4:49:15:94:b1:6b:78:3a:b5:fb:95:68: ab:ff:ff:45:74:f9:5f:17:a7:be:16:c8:92:66:28:d0:7c:6d: 60:0d:82:26:65:01:71:f1:93:0d:0b:44:f3:08:59:9e:d5:89: d5:8c:83:d1:dc:b2:a5:8f:b6:be:e8:9e:79:3c:62:02:6b:0e: b0:1e:82:b6:2c:4c:b0:f8:eb:93:20:84:8c:c6:32:69:b3:88: 27:bb:e8:7f:1c:37:01:26:35:0b:9a:61:bf:cc:00:c7:17:80: 61:11:cb:b7:4d:66:85:e6:13:3e:8c:8e:be:ec:47:d1:00:85: cb:b1:aa:69:6a:49:35:44:43:d9:cf:67:fd:ec:63:50:96:4a: 26:5b:36:c8:72:15:d7:5f:49:e5:30:98:0e:13:58:70:d2:72: 03:02:45:c1:9c:81:dc:e0:e1:1c:f0:a4:e3:13:e1:b8:d4:01: f7:83:d6:cf:72:ba:46:aa:84:55:57:64:e6:93:bb:bc:68:55: 32:cd:a4:d1:d6:db:e7:e6:9f:4f:1e:8a:24:44:76:42:ec:9d: 4e:d2:5a:7f:74:7b:9a:66:ed:c3:1d:e4:5d:1a:07:ed:c6:fe: bf:8e:d2:80
表示服务器证书
表示客户端证书
表示双向证书
表示CA证书
证书
生成
服务
验证
名称
字段
客户
客户端
双向
不同
公司
用户
类型
配置
有效
之间
单位
参数
可靠性
国家
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器双路电源供电原理
游戏软件开发公司沈阳市
万方数据库使用培训心得
2个数据库实时同步技术
软件开发产品输出
江西综合软件开发成本价
网络安全认识200字
仟佰广东互联网科技
福州通用服务器如何挑选
网络技术有限公司有哪些部门
戴尔服务器如何装固态硬盘
hbase的对比数据库
基岩版服务器可用指令
石棉县电力行业网络安全工作
企业保险软件开发
众联互联网科技工作室
网络软件开发工程师的待遇
海贼王热血航海线官方服务器
mjserver服务器
谷歌商店怎么删除数据库
如何把数据上传到云服务器计算
网络安全美国排名
普陀区网络技术
软件开发专业需要什么证
网络安全宣传板报图片
加强人防建设构筑网络安全
dns服务器广东揭阳云空间
山南外贸数据库系统哪家好
披着科技外衣的互联网公司
个人应该买什么样的服务器