首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes客户证书(RKE管理)

Kubernetes客户证书(RKE管理)
EN

Stack Overflow用户
提问于 2018-04-19 10:33:27
回答 1查看 1.2K关注 0票数 1

我目前正在使用AWS EC2虚拟机(带有CentOS 7和Docker17.03.2-ce)通过Rancher部署一个CentOS集群。不幸的是,在开发K8S仪表板之后,我无法通过API服务器(https://API-server-ip:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/)从外部访问它。服务已经启动并运行,没有问题:

代码语言:javascript
复制
NAMESPACE       NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
default         kubernetes             ClusterIP   10.43.0.1       <none>        443/TCP         1h
ingress-nginx   default-http-backend   ClusterIP   10.43.76.101    <none>        80/TCP          1h
kube-system     kube-dns               ClusterIP   10.43.0.10      <none>        53/UDP,53/TCP   1h
kube-system     kubernetes-dashboard   ClusterIP   10.43.198.196   <none>        443/TCP         1h

我看到已经在API服务器机器的/etc/kubernetes/ssl中创建了PEM证书:

代码语言:javascript
复制
-rw-r--r--. 1 root root 1679 Apr 19 09:19 kube-apiserver-key.pem
-rw-r--r--. 1 root root 1302 Apr 19 09:19 kube-apiserver.pem
-rw-r--r--. 1 root root 1679 Apr 19 09:19 kube-ca-key.pem
-rw-r--r--. 1 root root 1017 Apr 19 09:19 kube-ca.pem
-rw-r--r--. 1 root root  493 Apr 19 09:19 kubecfg-kube-controller-manager.yaml
-rw-r--r--. 1 root root  437 Apr 19 09:19 kubecfg-kube-node.yaml
-rw-r--r--. 1 root root  441 Apr 19 09:19 kubecfg-kube-proxy.yaml
-rw-r--r--. 1 root root  457 Apr 19 09:19 kubecfg-kube-scheduler.yaml
-rw-r--r--. 1 root root 1675 Apr 19 09:19 kube-controller-manager-key.pem
-rw-r--r--. 1 root root 1062 Apr 19 09:19 kube-controller-manager.pem
-rw-r--r--. 1 root root 1679 Apr 19 09:19 kube-etcd-<...>-compute-amazonaws-com-key.pem
-rw-r--r--. 1 root root 1298 Apr 19 09:19 kube-etcd-<...>-us-east-2-compute-amazonaws-com.pem
-rw-r--r--. 1 root root 1679 Apr 19 09:19 kube-node-key.pem
-rw-r--r--. 1 root root 1070 Apr 19 09:19 kube-node.pem
-rw-r--r--. 1 root root 1675 Apr 19 09:19 kube-proxy-key.pem
-rw-r--r--. 1 root root 1046 Apr 19 09:19 kube-proxy.pem
-rw-r--r--. 1 root root 1675 Apr 19 09:19 kube-scheduler-key.pem
-rw-r--r--. 1 root root 1050 Apr 19 09:19 kube-scheduler.pem

我尝试使用kube-apiserver-key.pem作为密钥来生成客户端证书openssl req -new -key /etc/kubernetes/ssl/kube-apiserver-key.pem -out /tmp/user-cert.pem,并最终使用它来访问。不幸的是,生成的证书格式无效(我尝试在MacOS X和SSL验证器上安装。

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-20 12:37:45

经过几次挖掘,我终于找到了一个解决办法。

在生成的文件中,客户端证书数据和客户端密钥数据都作为kubeconfig的base64编码密钥出现。

为了在我的客户端浏览器中使用它们,我必须首先对它们进行解码,以获得相应的证书和密钥。

代码语言:javascript
复制
echo '<KUBE_ADMIN_CLIENT_CERTIFICATE_DATA>' | base64 --decode > kube-admin-cert.pem

echo '<KUBE_ADMIN_CLIENT_KEY_DATA>' | base64 --decode > kube-admin-cert-key.pem

一旦生成证书,就有可能提取对应的.p12证书文件

代码语言:javascript
复制
openssl pkcs12 -export -clcerts -inkey kube-admin-cert-key.pem -in kube-admin-cert.pem -out kube-admin-cert.p12

最终,一旦在本地客户端浏览器中安装了p12证书,就有可能成功地对代理api服务器进行身份验证。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49918894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档