已批准Kubernetes CSR,但状态中未显示证书
我已经完成了生成RSA密钥的过程,为CSR创建了YAML,使用kubectl在Minikube中创建了CSR,并批准了证书 但是,当我尝试使用已批准Kubernetes CSR,但状态中未显示证书,kubernetes,kubectl,client-certificates,csr,Kubernetes,Kubectl,Client Certificates,Csr,我已经完成了生成RSA密钥的过程,为CSR创建了YAML,使用kubectl在Minikube中创建了CSR,并批准了证书 但是,当我尝试使用kubectl get csr my csr-o jsonpath='{.status.certificate}'下载证书时,得到的结果是空的 当我执行kubectl get csr my csr-o yaml以获取更多信息时,我看到的是: status: conditions: - lastUpdateTime: "2020-01-17T20:1
kubectl get csr my csr-o jsonpath='{.status.certificate}'下载证书时,
得到的结果是空的
当我执行kubectl get csr my csr-o yaml
以获取更多信息时,我看到的是:
status:
conditions:
- lastUpdateTime: "2020-01-17T20:17:20Z"
message: This CSR was approved by kubectl certificate approve.
reason: KubectlApprove
type: Approved
我需要一个带有base64编码字符串的证书属性,我将对其进行解码以获取用于客户端证书验证的证书。有人能告诉我我做错了什么吗
关于更多的上下文,我尝试按照中的说明进行操作,因为CSR不是特定于名称空间的,所以命令看起来很好。我也做了同样的事情来获得证书,检查您是否正确提供了正确的csr名称 其次,如果您没有提供名称,并试图获取所有csr详细信息,则需要使用其他
.items[*]
kubectl get csr -o jsonpath='{.items[*].status.certificate}'
我有种感觉,您错过了csr名称
我的csr
,或者名称与搜索不匹配(输入错误?)。再检查一遍 我遇到了类似的问题。当我使用以下命令进行检查时:
kubectl获得svc
csr的状态似乎已批准,但尚未发布。知道怎么修吗
[更新]
我发现了问题。这是因为kube控制器管理器遗漏了以下选项:
--群集签名证书文件和--群集签名密钥文件对于我的案例,我有一个打字错误 签名名称:kubernetes.io/kube-apisever-client
结果是一样的。csr已批准,但未颁发证书。在我更正了打字错误后,问题得到解决。此错误必须出现。从文件中
允许的主题-组织完全是[“系统:节点”],通用名称以“系统:节点:”开头。
因此,解决方案是在证书生成中添加主题O=system:nodes并将“system:node:”附加到servicename
例如。
openssl-req-new-key-server.key-out-server.csr-subc”/O=system:nodes/CN=system:node:colortokes bgl.csp.svc“-config server.conf