OpenShift 4 - 为客户端配置使用基于CA证书的kubeconfig实现无密码登录
《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.7环境中验证
文章目录
- OpenShift的身份认证方式
- 为客户端配置认证CA证书
- 参考
OpenShift的身份认证方式
客户端在访问OpenShift的时候可以使用3种方式向OpenShift提供认证信息。
- 用户名密码
- Token
- CA证书
本文说明如何为客户端配置认证CA,并将其配置到kubeconfig中进行自动登录。
为客户端配置认证CA证书
- 先用clusteradmin角色的用户登录OpenShift。
- 设置变量
$ AUTH_NAME="auth2kube"
$ KUBECONFIG_FILE="~/mykubeconfig"
- 为“myuser”创建证书申请(csr文件)和对应秘钥。
$ openssl req -new -newkey rsa:4096 -nodes -keyout $AUTH_NAME.key -out $AUTH_NAME.csr -subj "/CN=myuser/O=system:masters"
Generating a RSA private key
.....................++++
..++++
writing new private key to 'auth2kube.key'
-----
- 为证书签名请求(csr)创建对应的K8s对象。
$ cat << EOF>> $AUTH_NAME-csr.yaml
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:name: $AUTH_NAME-access
spec:groups:- system:authenticatedrequest: $(cat $AUTH_NAME.csr | base64 | tr -d '\n')usages:- client auth
EOF$ oc create -f auth2kube-csr.yaml
W0610 07:38:10.053898 536 warnings.go:70] certificates.k8s.io/v1beta1 CertificateSigningRequest is deprecated in v1.19+, unavailable in v1.22+; use certificates.k8s.io/v1 CertificateSigningRequest
certificatesigningrequest.certificates.k8s.io/auth2kube-access created
- 查看csr 请求,并审批通过。
$ oc get csr auth2kube-access
NAME AGE SIGNERNAME REQUESTOR CONDITION
auth2kube-access 16s kubernetes.io/legacy-unknown admin Pending$ oc adm certificate approve auth2kube-access
certificatesigningrequest.certificates.k8s.io/auth2kube-access approved
- 从批准后的证书获取客户端证书(crt文件)。
$ oc get csr $AUTH_NAME-access -o jsonpath='{.status.certificate}' | base64 -d > $AUTH_NAME-access.crt
- 利用客户端证书和秘钥创建新的kubeconfig。
$ oc config set-credentials myuser --client-certificate=$AUTH_NAME-access.crt --client-key=$AUTH_NAME.key --embed-certs --kubeconfig=${KUBECONFIG_FILE}
User "myuser" set.
- 设置 myuser 登录后缺省使用default项目。
$ oc config set-context myuser --cluster=$(oc config view -o jsonpath='{.clusters[0].name}') --namespace=default --user=myuser --kubeconfig=${KUBECONFIG_FILE}
Context "myuser" created.
- 获得OpenShift的CA证书,并将其加入kubeconfig中。
$ oc -n openshift-authentication rsh `oc get pods -n openshift-authentication -o name | head -1` cat /run/secrets/kubernetes.io/serviceaccount/ca.crt > ingress-ca.crt$ oc config set-cluster $(oc config view -o jsonpath='{.clusters[0].name}') --server=$(oc config view -o jsonpath='{.clusters[0].cluster.server}') --certificate-authority=ingress-ca.crt --kubeconfig=${KUBECONFIG_FILE} --embed-certs
Cluster "local" set.
- 设置当前使用${KUBECONFIG_FILE}中的配置。
$ oc config use-context myuser --kubeconfig=${KUBECONFIG_FILE}
Switched to context "myuser".$ export KUBECONFIG=${KUBECONFIG_FILE}
- 直接用myuser登录验证,登录过程不需要密码,而是用kubeconfig中的证书进行登录。
$ oc login -u myuser
Logged into "https://openshift:6443" as "myuser" using existing credentials.You have access to 61 projects, the list has been suppressed. You can list all projects with 'oc projects'Using project "default".$ oc whoami
myuser
参考
https://rcarrata.com/openshift/regenerate-kubeconfig/
OpenShift 4 - 为客户端配置使用基于CA证书的kubeconfig实现无密码登录相关推荐
- The Things Network LoRaWAN Stack V3 学习笔记 2.1.2 客户端导入自签名 CA 证书
前言 TTN 的开发环境使用了自签名证书,浏览器端在进行OAUTH登录时会弹出警告,当然我们可以无视警告强制跳转.但本地客户端 CLI 也需要进行 SSL 交互,因此本地也需要添加 CA 证书. 否则 ...
- Fiddler抓包解析https且配置安卓手机CA证书、抓取微信数据包
准备工作 Fiddler v5.0.20173.50948 step1: 点击Tools->选择HTTPS 点击图中的4选择export Root Ceratificate to Desktop ...
- adsl服务器客户端配置cisco_基于ISE对Cisco网络设备部署AAA
基于ISE对Cisco网络设备部署AAA 上期小武老师我教你们安装了ISE服务器,那么现在服务器安装好了,AAA如何部署实现呢?现在我就来教你们! 跟着小武我开始吧-- 一.ISE初始化配置 1.1. ...
- FJ集团企业级邮件服务器---iRedMail客户端配置
FJ集团企业邮件服务器---iRedMail客户端配置 一.Roundcube Webmail设置: 1.登录:注:用户名:paul 密码:XXXX 2.发邮件: 如下图所示: 二.客户端outloo ...
- 04-Windows Server 2012 R2 会话远程桌面-标准部署-CA证书(RemoteApp)
在之前的博客中,已经按照标准部署进行了配置,基本上标准的部署已经完成,但是在IT环境中,细节决定成败,在我们通过Web进行访问RemoteApp程序时候,总会有一些警告和阻拦,这些问题虽然不影响到用户 ...
- openssl私有CA证书签发与单双向认证
什么是CA? CA是数字认证中心的简称.指的是发放.管理.废除数字证书的机构. CA的作用: 检查证书持有者身份的合法性.签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理. 建 ...
- CA证书理解?CA证书的作用?
CA证书顾名思义就是由CA(Certification Authority)机构发布的数字证书.要对CA证书完全理解及其作用,首先要理解SSL.SSL(security sockets layer,安 ...
- Windows下OpenSSL创建CA证书以及客户端和服务器端证书
打开命令行工具,转到安装目录bin文件夹, $ mkdir -p ./demoCA/{private,newcerts} $ touch ./demoCA/index.txt $ echo 01 &g ...
- Mysql开启ssl加密协议及Java客户端配置操作指南
Mysql开启ssl加密协议及Java客户端配置操作指南 Mysql配置 验证Mysql开启SSL Java客户端操作 生成证书密码 配置数据库连接 工具配置 Mysql配置 Mysql需要配置对应的 ...
最新文章
- IOSUIcontrol事件
- 南京大学教授施斌及其团队—— 光纤变“神经” 大地能感知
- java字符串的用法_Java字符串的重要方法的使用实例
- autowired 静态方法使用_关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
- java调用easyxml接口_【技术教程】如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口?...
- 【client】与【offset】
- ASP.NET MVC:会导致锁定的会话
- Linux 和 Windows 平台不同的 UCS-2 编码
- c#中接口的使用方法图解_c# 接口方法中使用new有什么用?
- 尴尬!OpenAI惊现大漏洞,一张手写纸条竟瞒过计算机视觉系统
- shell 创建文件_vba代替鼠标打开文件夹
- Sessions, Window Stations and Desktops(GetDesktopWindow函数得到的桌面句柄, 是Csrss.exe创建的一个窗口)
- PS去除图片和PDF中的水印
- java实现界面化,java实现图形化界面
- VMDK(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式
- 用文氏图解析条件概率与贝叶斯概率
- Camtasia Studio2023非常好用的电脑录屏软件
- 介绍120 个相见恨晚的神器网站--学习、搜索、图片、视频样样不少!
- mac 上传ftp服务器文件大小,mac与windows通过ftp传输文件
- 顺序栈栈顶指针指向详析
热门文章
- 在计算机系统中 外存储器必须通过,大学计算机基础第4章作业.doc
- 登峰连接程式改坐标软件_数控仿真软件CIMCOEdit常用的操作,新手必看
- c++ 项目_罗纳尔多相信C罗从事技巧类项目,其成就不会亚于他在足坛的成绩
- 设计轻松应用素材 | 免抠png和图标上哪找
- 2020年的UI设计师需要会什么软件
- matlab运动背景位移矢量,位移云图三维位移矢量图
- (全网唯一)Python 10行代码 实现 PDF转WORD
- REDM库使用教程01(详细入门)
- MyBatis的总结(下)
- CUDA的线程层次结构