【k8s】k8s 中X.509 客户端证书验证机制

       Kubernetes 使用 X.509 客户端证书进行身份验证是一种常见的方法。这种机制通过客户端证书来验证用户或应用程序的身份。以下是 Kubernetes 中 X.509 客户端证书验证机制的详细说明:

1. 生成客户端证书

首先,你需要生成客户端证书和私钥。这通常使用 OpenSSL 工具完成。

步骤:
  1. 生成私钥

    openssl genpkey -algorithm RSA -out client-key.pem
  2. 生成证书签名请求 (CSR)

    openssl req -new -key client-key.pem -out client-csr.pem

    在生成 CSR 时,你需要提供一些信息,例如 Common Name (CN)。CN 通常用于标识用户-  这个cn标识的用户一般都是rbca中 指定的user: xxxx

  3. 生成客户端证书

     

    使用 CA(k8s中的根证书)的私钥签署 CSR,生成客户端证书。

    openssl x509 -req -in client-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 365

    其中:

    • ca-cert.pem 是 CA 的证书。
    • ca-key.pem 是 CA 的私钥。

2. 配置 Kubernetes API Server

为了让 Kubernetes API Server 接受客户端证书,你需要在启动 API Server 时指定 CA 证书。

步骤:
  1. 启动 API Server

    在启动 Kubernetes API Server 时,使用 --client-ca-file 参数指定 CA 证书的位置。例如:

    kube-apiserver --client-ca-file=/path/to/ca-cert.pem ...

    这告诉 API Server 使用指定的 CA 证书来验证客户端证书,   

  2. 默认情况k8s中的配置如下: - --client-ca-file=/etc/kubernetes/pki/ca.crt

3. 创建 kubeconfig 文件

为了使用客户端证书访问 Kubernetes 集群,你需要创建一个 kubeconfig 文件,并在其中指定客户端证书和私钥。

步骤:
  1. 创建 kubeconfig 文件

     

    使用以下命令生成 kubeconfig 文件:

    kubectl config set-credentials my-user --client-certificate=/path/to/client-cert.pem --client-key=/path/to/client-key.pem
    kubectl config set-cluster my-cluster --server=https://<API_SERVER_HOST>:<API_SERVER_PORT> --certificate-authority=/path/to/ca-cert.pem
    kubectl config set-context my-context --cluster=my-cluster --user=my-user
    kubectl config use-context my-context

    其中:

    • my-user 是用户名。
    • my-cluster 是集群名称。
    • my-context 是上下文名称。
    • <API_SERVER_HOST> 和 <API_SERVER_PORT> 是 Kubernetes API Server 的主机和端口。
    • /path/to/client-cert.pem 是客户端证书的路径。
    • /path/to/client-key.pem 是客户端私钥的路径。
    • /path/to/ca-cert.pem 是 CA 证书的路径。

4. 验证客户端证书

当客户端尝试访问 Kubernetes API Server 时,API Server 会使用指定的 CA 证书来验证客户端证书。验证过程包括以下几个步骤:

  1. 证书链验证:API Server 验证客户端证书是否由指定的 CA 签发。
  2. 证书有效期验证:API Server 验证客户端证书是否在有效期内。
  3. 证书撤销列表 (CRL) 验证(可选):API Server 验证客户端证书是否已被撤销。
  4. 权限验证:API Server 验证客户端证书中的用户是否有权限执行请求的操作。

5. 示例 kubeconfig 文件

以下是一个完整的 kubeconfig 文件示例:

apiVersion: v1
kind: Config
clusters:
- name: my-clustercluster:certificate-authority-data: <base64-encoded-ca-cert>server: https://<API_SERVER_HOST>:<API_SERVER_PORT>
contexts:
- name: my-contextcontext:cluster: my-clusteruser: my-user
current-context: my-context
users:
- name: my-useruser:client-certificate-data: <base64-encoded-client-cert>client-key-data: <base64-encoded-client-key>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.4特征预处理(机器学习)

2.4特征预处理 2.4.1 什么是特征预处理 通过 一些转换函数将特征数据转换成更加适合算法模型的特征数据过程。 1 包含内容 数值型数据的无量纲化&#xff1a; 归一化 标准化 2 特征预处理API sklearn.preprocessing 为什么要进行归一化/标准化&#xff1f; 特征的单…

前端、后端、测试?如何选择

目录 一、前端开发 &#xff08;一&#xff09;职业概述 &#xff08;二&#xff09;需学习的技术 二、后端开发 &#xff08;一&#xff09;职业概述 &#xff08;二&#xff09;需学习的技术 三、测试 &#xff08;一&#xff09;职业概述 &#xff08;二&#xff0…

AI - 谈谈RAG中的查询分析(2)

AI - 谈谈RAG中的查询分析&#xff08;2&#xff09; 大家好&#xff0c;RAG中的查询分析是比较有趣的一个点&#xff0c;内容丰富&#xff0c;并不是一句话能聊的清楚的。今天接着上一篇&#xff0c;继续探讨RAG中的查询分析&#xff0c;并在功能层面和代码层面持续改进。 功…

hadoop环境配置-创建hadoop用户+更新apt+安装SSH+配置Java环境

一、创建hadoop用户(在vm安装的ubantu上打开控制台) 1、sudo useradd -m hadoop -s /bin/bash &#xff08;创建hadoop用户&#xff09; 2、sudo passwd hadoop (设置密码) 3、sudo adduser hadoop sudo&#xff08;将新建的hadoop用户设置为管理员&#xff09; 执行如下图 将…

大数据新视界 -- Hive 数据湖架构中的角色与应用(上)(25 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

SpringMVC:参数传递之日期类型参数传递

环境准备和参数传递请见&#xff1a;SpringMVC参数传递环境准备 日期类型比较特殊&#xff0c;因为对于日期的格式有N多中输入方式&#xff0c;比如: 2088-08-182088/08/1808/18/2088… 针对这么多日期格式&#xff0c;SpringMVC该如何接收&#xff0c;它能很好的处理日期类…

jmeter如何导出中文版的测试报告?

文章目录 0、初始步骤&#xff1a;把报告模板换成中文形式1、首先添加一份聚合报告2、然后点开【聚合报告】3&#xff0c;生成报告3.1 选择【工具】-【generate HTML report】3.2 【generate HTML report】参数详解3.3 、最后点击 【generate report】直接生成。 声明&#xff…

基于IPD双轮驱动, 打破产品同质化竞争魔咒

在当今竞争激烈的商业环境中&#xff0c;产品同质化现象愈发严重&#xff0c;企业面临着巨大的挑战。如何在众多相似产品中脱颖而出&#xff0c;赢得客户的青睐并获取持续的竞争优势&#xff0c;成为企业亟待解决的关键问题。基于 IPD 双轮驱动的产品开发模式&#xff0c;为企业…

2.mysql 中一条更新语句的执行流程是怎样的呢?

前面我们系统了解了一个查询语句的执行流程&#xff0c;并介绍了执行过程中涉及的处理模块。 相信你还记得&#xff0c;一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块&#xff0c;最后到达存储引擎。 那么&#xff0c;一条更新语句的执行流程又…

es索引导致的数据导入缓慢问题

我是es小白中的小白&#xff0c;遇到个问题也不知道为啥&#xff0c;反正是解决了&#xff0c;各位路过的大哥&#xff0c;有知道原因的还望留言指教&#xff0c;在此感谢&#xff01; 我先讲一下这个问题的背景&#xff0c;我们线上有一套es&#xff0c;版本是7&…

【LeetCode每日一题】——204.计数质数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 中等 三【题目编号】 204.计数质数 四【题目描述】 给定整数 n &…

【计算机网络】细说IP

文章目录 概述IP地址的组成IP地址的分类IP地址的作用 分类一、A类IP地址二、B类IP地址三、C类IP地址四、D类IP地址五、E类IP地址 协议报文子网掩码一、定义与功能二、表示方法三、子网掩码与IP地址的关系四、子网掩码的设置与配置五、实例说明 IPv6一、定义与背景二、地址格式与…

tar.gz压缩包校验是否损坏

1. 使用 tar 命令检查 tar 命令有一个 -t 选项&#xff0c;可以用来列出压缩包中的内容&#xff0c;并在过程中检查文件是否损坏。如果压缩包损坏&#xff0c;tar 会报错。 命令&#xff1a;tar -tzf filename.tar.gz-t&#xff1a;列出压缩包中的内容。-z&#xff1a;表示压…

【数据事务】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

【机器学习】机器学习的基本分类-监督学习-决策树-ID3 算法

ID3&#xff08;Iterative Dichotomiser 3&#xff09;是决策树的一种构造算法&#xff0c;由 Ross Quinlan 在 1986 年提出。它主要用于分类问题&#xff0c;通过信息增益选择特征来构建决策树。ID3 假设数据是离散型特征&#xff0c;且不支持连续型数据。 1. 核心思想 划分标…

JAVA |日常开发中读写XML详解

JAVA &#xff5c;日常开发中读写XML详解 前言一、XML 简介二、在 Java 中读取 XML2.1 使用 DOM&#xff08;Document Object Model&#xff09;方式读取 XML2.2 使用 SAX&#xff08;Simple API for XML&#xff09;方式读取 XML 三、在 Java 中写入 XML3.1 使用 DOM 方式写入…

ISAAC SIM踩坑记录--Omniverse Launcher添加代理

最近Omniverse Launcher不知道又抽什么疯&#xff0c;在Exchange界面安装各种软件都不成功&#xff0c;报错如下&#xff1a; FetchError: request to https://launcher-index-prod.s3.amazonaws.com/en/components.json failed, reason: Client network socket disconnected…

mac电脑多个ssh keys共存

一、同一台电脑&#xff0c;不同域名的git仓库为什么要设置不同的ssh keys&#xff1f; 每个git仓库通常要求使用唯一的ssh key&#xff0c;以防止权限冲突和安全问题。 权限控制&#xff1a;每个git仓库的权限是独立的&#xff0c;使用不同的ssh keys可以更好的管理权限&…

软件设计师笔记-算法设计与分析面向对象技术

算法设计与分析 算法的特性 有穷性确定性可行性输入输出 算法的表示方法 自然语言流程图程序设计语言伪代码 递归算法求时间复杂度 展开法&#xff1a;将等式依次展开代换法&#xff1a;用所猜测的值代替函数的解 分治法 将一个难以直接解决的大问题分解成一些规模较小…

第9章 大模型的有害性(上)

9.1 引言 本章将探讨大型语言模型&#xff08;LLMs&#xff09;可能带来的有害性&#xff0c;重点讨论以下几个方面&#xff1a; 性能差异社会偏见和刻板印象 在后续内容中&#xff0c;还会涉及其他层面的危害&#xff0c;如有害信息、虚假信息、隐私和安全风险、版权问题、…