当前位置: 首页 > article >正文

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

  • 安装cfssl工具
  • 配置CA证书请求文件
  • 创建CA证书
  • 创建CA证书策略
  • 配置etcd证书请求文件
  • 生成etcd证书

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

安装cfssl工具

下载cfssl安装包

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

下载cfssljson安装包

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

下载cfssl-certinfo安装包

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

验证cfssl是否安装

cfssl version

配置CA证书请求文件

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证书

cfssl gencert -initca ca-csr.json | cfssljson -bare ca
#输出内容:
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提供的证书进行验证

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

配置etcd证书请求文件

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证书

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes etcd-csr.json | cfssljson -bare etcd
#输出结果
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

http://www.kler.cn/a/530639.html

相关文章:

  • git笔记-简单入门
  • 影视文件大数据高速分发方案
  • 沙皮狗为什么禁养?
  • 力扣第149场双周赛
  • 【Python-办公自动化】实现自动化输出json数据类型的分析报告和正逆转换
  • 个人笔记(很没营养,纯备忘录)
  • Games202Lecture 6 Real-time Environment Mapping
  • K8S学习笔记-------1.安装部署K8S集群环境
  • Java NIO_非阻塞I/O的实现与优化
  • 扩散模型(一)
  • ARM嵌入式学习--第十二天(WDOG,RTC)
  • hot100(5)
  • OpenAI 实战进阶教程 - 第一节:OpenAI API 架构与基础调用
  • 实现Ajax请求、实现深拷贝
  • Eureka 服务注册和服务发现的使用
  • 克隆OpenAI(基于openai API和streamlit)
  • DeepSeek R1安装与使用
  • tcp/ip协议讲解,tcp/ip协议理解
  • Cursor 简介:AI 如何改变编程体验
  • 什么是API端点(API endpoint)
  • 【hot100】刷题记录(10)-旋转图像
  • MVS pythonSamples 运行环境配置
  • 应用层协议——HTTP协议
  • CharacterEncoder类
  • Linux环境下的Java项目部署技巧:安装 Mysql
  • 每日一题——包含min函数的栈