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
相关推荐
JIngJaneIL2 分钟前
停车场管理|停车预约管理|基于Springboot的停车场管理系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·停车场管理系统
煎蛋学姐2 分钟前
SSM儿童福利院管理系统ys9w2d07(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·儿童福利院管理系统
sg_knight5 分钟前
MySQL 空间索引(SPATIAL)详解:地理位置数据的高效查询利器
数据库·mysql·database·索引·关系型数据库·空间索引·spatial
梦子yumeko1 小时前
第五章Langchain4j之基于内存和redis实现聊天持久化
数据库·redis·缓存
IndulgeCui2 小时前
【金仓数据库产品体验官】KSQL Developer Linux版安装使用体验
linux·运维·数据库
一马平川的大草原3 小时前
基于n8n实现数据库多表数据同步
数据库·数据同步·dify·n8n
老华带你飞5 小时前
商城推荐系统|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·商城推荐系统
一 乐5 小时前
物业管理系统|小区物业管理|基于SprinBoot+vue的小区物业管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
这周也會开心5 小时前
Spring框架
java·数据库·spring
gys98955 小时前
uniapp使用sqlite模块
数据库·sqlite·uni-app