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
相关推荐
q***448117 小时前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb
风123456789~17 小时前
【OceanBase专栏】OB租户-创建实验
数据库·笔记·oceanbase
cmcm!17 小时前
学习笔记1
数据库·笔记·学习
Zero-Talent17 小时前
MySQL初级
数据库·mysql·oracle
烟雨归来17 小时前
oracle数据文件大小异常故障处理
数据库·oracle
jenchoi41317 小时前
【2025-11-23】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·数据库·安全·web安全·网络安全
auspicious航18 小时前
PostgreSQL数据库之使用 pg_waldump 和 pg_walinspect 查看 WAL 文件的内容
数据库·postgresql
unicrom_深圳市由你创科技18 小时前
Django项目结构与微服务设计
数据库·sqlite
不断高歌20 小时前
MySQL基础随堂笔记3
数据库·mysql
筵陌20 小时前
MySQL表的增删查改(上)
数据库·mysql