【问题标题】:Curl minikube apiserver using client certs for authenticationCurl minikube apiserver 使用客户端证书进行身份验证
【发布时间】: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


    【解决方案1】:

    你使用什么 curl 版本?什么操作系统?不是MacOSX吗?

    非常相似的问题Error when trying to access API via curl,也没有看到有效的当前证书。解决方法是将密钥转换为pkcs12

    How to access Kubernetes API using CURL 帖子中的 RaeesBhatti 也建议

    我发现我使用了错误的证书和 SSL:不能 加载证书 [] 及其私钥:OSStatus -25299 是 problem specific to CURL in OS X Mavericks+ CURL 接受的地方 仅 P12 格式的证书。您必须在 $HOME/.minikube/ 目录而不是 $HOME/.minikube/certs。你也 必须convert the certificates into P12 格式,然后使用它们。

    【讨论】:

      猜你喜欢
      • 2012-01-10
      • 2015-10-29
      • 2018-07-05
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      相关资源
      最近更新 更多