k8s二进制集群之ETCD集群证书生成

继续上一篇文章《负载均衡器高可用部署》下面介绍一下etcd证书生成配置。其中涉及到的ip地址和证书基本信息请替换成你自己的信息。

安装cfssl工具

下载cfssl安装包

bash 复制代码
https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfssl_1.6.4_linux_amd64
bash 复制代码
chmod +x cfssl_1.6.4_linux_amd64
mv cfssl_1.6.4_linux_amd64 /usr/local/bin/cfssl

下载cfssljson安装包

bash 复制代码
https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfssljson_1.6.4_linux_amd64
bash 复制代码
chmod +x cfssljson_1.6.4_linux_amd64
mv cfssljson_1.6.4_linux_amd64 /usr/local/bin/cfssljson

下载cfssl-certinfo安装包

bash 复制代码
https://github.com/cloudflare/cfssl/releases/download/v1.6.4/cfssl-certinfo_1.6.4_linux_amd64
bash 复制代码
chmod +x cfssl-certinfo_1.6.4_linux_amd64
mv cfssl-certinfo_1.6.4_linux_amd64 /usr/local/bin/cfssl-certinfo

验证cfssl是否安装

bash 复制代码
cfssl version

配置CA证书请求文件

bash 复制代码
cat > ca-csr.json <<"EOF"
{
 "CN":"kubernetes",
 "key":{
  "algo":"rsa",
  "size":2048
 },
 "names":[
  {
   "C":"CN",
   "ST":"zhejiang",
   "L":"hangzhou",
   "O":"eyinfo",
   "OU":"CN"
  }
 ],
 "ca":{
  "expiry":"876000h"
 }
}
EOF

创建CA证书

bash 复制代码
cfssl gencert -initca ca-csr.json | cfssljson -bare ca
bash 复制代码
#输出内容:
2024/07/17 14:05:27 [INFO] generating a new CA key and certificate from CSR
2024/07/17 14:05:27 [INFO] generate received request
2024/07/17 14:05:27 [INFO] received CSR
2024/07/17 14:05:27 [INFO] generating key: rsa-2048
2024/07/17 14:05:28 [INFO] encoded CSR
2024/07/17 14:05:28 [INFO] signed certificate with serial number 204637901880970253758340254603897378959705254552

创建CA证书策略

server auth 表示client可以对使用该ca由server提供的证书进行验证

client auth 表示server可以使用该ca由client提供的证书进行验证

bash 复制代码
cat > ca-config.json <<"EOF"
{
 "signing": {
  "default": {
   "expiry":"876000h"
  },
  "profiles": {
   "kubernetes": {
    "usages": [
     "signing",
     "key encipherment",
     "server auth",
     "client auth"
    ],
    "expiry": "876000h"
   }
  }
 }
}
EOF

配置etcd证书请求文件

bash 复制代码
cat > etcd-csr.json <<"EOF"
{
 "CN": "etcd",
 "hosts": [
  "127.0.0.1",
  "192.168.3.41",
  "192.168.3.42",
  "192.168.3.43"
 ],
 "key": {
  "algo": "rsa",
  "size": 2048
 },
 "names": [{
  "C":"CN",
  "ST":"zhejiang",
  "L":"hangzhou",
  "O":"eyinfo",
  "OU":"CN"
 }]
}
EOF

生成etcd证书

bash 复制代码
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes etcd-csr.json | cfssljson -bare etcd
bash 复制代码
#输出结果
2024/07/17 14:54:50 [INFO] generate received request
2024/07/17 14:54:50 [INFO] received CSR
2024/07/17 14:54:50 [INFO] generating key: rsa-2048
2024/07/17 14:54:50 [INFO] encoded CSR
2024/07/17 14:54:50 [INFO] signed certificate with serial number 190216768305198849016248800228208888865087276362
相关推荐
潘yi.5 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
zdkdchao5 小时前
hbase资源和数据权限控制
大数据·数据库·hbase
伤不起bb5 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
leo__5205 小时前
PostgreSQL配置文件修改及启用方法
数据库·postgresql
南風_入弦7 小时前
优化09-表连接
数据库·oracle
Snk0xHeart8 小时前
极客大挑战 2019 EasySQL 1(万能账号密码,SQL注入,HackBar)
数据库·sql·网络安全
····懂···8 小时前
数据库OCP专业认证培训
数据库·oracle·ocp
学习中的码虫9 小时前
数据库-MySQL
数据库
Karry的巡洋舰9 小时前
【数据库】安全性
数据库·oracle
软件测试小仙女10 小时前
鸿蒙APP测试实战:从HDC命令到专项测试
大数据·软件测试·数据库·人工智能·测试工具·华为·harmonyos