Kubernetes Ingress-Controller和AWS API Gateway客户端证书

问题描述 投票:3回答:2

我有一个问题,我想在我的入口配置中使用API​​网关客户端证书。

  1. 我在AWS上生成了证书。
  2. 我已经创建了这个证书的秘密: kubectl create secret generic api --from-file=api-gateway-client-certificate.crt --namespace develop
  3. 我在我的ingress文件中添加了配置: annotations: nginx.ingress.kubernetes.io/auth-tls-verify-client: "on" nginx.ingress.kubernetes.io/auth-tls-secret: "default/api" nginx.ingress.kubernetes.io/auth-tls-verify-depth: "1"`

最后我不知道为什么我在入口控制器上出现这个错误:

获取X.509证书时出错:密码“develop / api”不包含密钥对或CA证书

我使用Kubernetes v1.11.1和nginx-ingress-controller v0.17.1

amazon-web-services nginx kubernetes aws-api-gateway api-gateway
2个回答
2
投票

因此,您缺少证书的密钥和/或CA.您是否在AWS中使用私有CA?常规证书管理不会为您提供密钥文件,因为它会在后台创建CSR。

一般来说,你会像这样创建你的秘密:

kubectl -n kube-system create secret tls my-tls-cert --key=tls.key --cert=tls.crt

另外,我会将以-----BEGIN CERTIFICATE-----开头的CA附加到api-gateway-client-certificate.crt的内容中


0
投票

是的你是对的我没有私钥,我使用API​​网关的客户端证书,它不会让我访问我只有CA的密钥。

我尝试从我的域CA添加私钥,但私钥与公钥https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html#certificate-validation不匹配

我不知道如何添加API网关客户端证书。

© www.soinside.com 2019 - 2024. All rights reserved.