【发布时间】:2020-11-03 02:31:42
【问题描述】:
关于使用带有客户端证书和密钥的 curl 对 minikube api-server 进行身份验证的基本问题。
当我在 api-server 上 curl /ping 端点时,我得到一个 403(预期,身份验证失败)
curl -k https://127.0.0.1:32776/ping
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/ping\"",
"reason": "Forbidden",
"details": {
},
"code": 403
}
为了解决这个问题,我正在尝试我正在使用的以下 curl 命令
curl -v
--cert /Users/blah/.minikube/profiles/minikube/client.crt \
--cacert /Users/blah/.minikube/ca.cert \
--key /Users/blah/.minikube/profiles/minikube/client.key \
https://127.0.0.1:32776/ping
我回来了
* Trying 127.0.0.1:32776...
* Connected to 127.0.0.1 (127.0.0.1) port 32776 (#0)
* ALPN, offering http/1.1
* WARNING: SSL: CURLOPT_SSLKEY is ignored by Secure Transport. The private key must be in the Keychain.
* WARNING: SSL: Certificate type not set, assuming PKCS#12 format.
* SSL: Can't find the certificate "/Users/blah/.minikube/profiles/minikube/client.crt" and its private key in the Keychain.
* Closing connection 0
curl: (58) SSL: Can't find the certificate "/Users/blah/.minikube/profiles/minikube/client.crt" and its private key in the Keychain.
我正在使用上述证书,如
kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/blah/.minikube/ca.crt
server: https://127.0.0.1:32776
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /Users/blah/.minikube/profiles/minikube/client.crt
client-key: /Users/blah/.minikube/profiles/minikube/client.key
我认为这是我缺少的更多 curl 使用细节,minikube 似乎很好。 另外,我很好奇其他人如何对 minikube 的 curl 请求进行身份验证?
【问题讨论】:
标签: curl kubernetes minikube client-certificates