OpenShift 4 - 用自定义的TLS证书对访问OpenShift的用户认证身份

OpenShift 4.x HOL教程汇总

通常我们是使用username/password登录OpenShift,不过还可以证书登录OpenShift。使用证书除了可以参考《OpenShift 4 - 获取OpenShift的证书,实现基于证书的操作》,还可用本文创建自定义的证书然后注册到OpenShift中,这样就可以用证书登录操作OpenShift了。

  1. 通过《OpenShift 4之增加 HTPasswd方式的身份认证》一文在OpenShift中增加一个用户(例如user100,密码password)
  2. 用user100登录OpenShift控制台,并创建user100-1项目。
  3. 用集群管理员在命令行登录OpenShift。
  4. 设置环境变量。
$ export OCP_USERNAME="user100"
$ export OCP_API_SERVER=$(oc whoami --show-server)
$ mkdir ${OCP_USERNAME}
  1. 创建自签名证书。
$ openssl req -new -nodes -subj "/CN=${OCP_USERNAME}" -keyout ${OCP_USERNAME}/private.key -out ${OCP_USERNAME}/request.csr
  1. 创建CertificateSigningRequest对象。
$ cat <<EOF | oc apply -f -
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
  name: tls-auth-${OCP_USERNAME}
spec:
  signerName: "kubernetes.io/kube-apiserver-client"
  request: $(cat ${OCP_USERNAME}/request.csr | base64 | tr -d '\n')
  usages:
    - digital signature
    - key encipherment
    - client auth
  extra:
    scopes.authorization.openshift.io:
      - user:full
EOF
  1. 在OpenShift中通过CertificateSigningRequest审批。
$ oc adm certificate approve tls-auth-${OCP_USERNAME}
  1. 从已签名的CSR中获得客户端证书。
$ oc get csr tls-auth-${OCP_USERNAME} -o jsonpath="{.status.certificate}" | base64 -d > ${OCP_USERNAME}/certificate.pem
  1. 从API Server中获得CA链
$ oc get cm kube-apiserver-server-ca -o jsonpath="{.data.ca-bundle\.crt}" -n openshift-kube-apiserver > api-ca.pem
  1. 为用户创建kubeconfig文件,其中包括了用户证书、私钥要CA链。
$ oc adm create-kubeconfig \
  --kubeconfig=${OCP_USERNAME}/kubeconfig \
  --user=${OCP_USERNAME} \
  --client-certificate=${OCP_USERNAME}/certificate.pem \
  --client-key=${OCP_USERNAME}/private.key \
  --certificate-authority=api-ca.pem \
  --public-master=${OCP_API_SERVER} \
  --master=${OCP_API_SERVER}
  1. 从OpenShift退出集群管理员。
$ oc logout
  1. 设置KUBECONFIG,修改缺省使用的kubeconfig文件。
$ export KUBECONFIG="${OCP_USERNAME}/kubeconfig"
  1. 执行命令,确认当前是user100用户,可以创建应用,但是看不到Session的Token。
$ oc whoami
user100
$ oc whoami -t
error: no token is currently in use for this session
$ oc project user100-1
$ oc new-app openshift/hello-openshift
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值