Kubernetes Ingress-Controller 和 AWS API Gateway 客户端证书
Posted
技术标签:
【中文标题】Kubernetes Ingress-Controller 和 AWS API Gateway 客户端证书【英文标题】:Kubernetes Ingress-Controller and AWS API Gateway client certificate 【发布时间】:2019-02-19 10:41:48 【问题描述】:我有一个问题,我想在我的入口配置中使用 API 网关客户端证书。
-
我已经在 AWS 上生成了证书。
我已经创建了证书的秘密:
kubectl create secret generic api --from-file=api-gateway-client-certificate.crt
--namespace develop
我已经在我的入口文件中添加了配置:
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
【问题讨论】:
【参考方案1】:因此,您缺少证书的密钥和/或 CA。您是否在 AWS 中使用了私有 CA?常规证书管理不会为您提供密钥文件,因为它会在后台创建 CSR。
通常,您会像这样创建 tls 机密:
kubectl -n kube-system create secret tls my-tls-cert --key=tls.key --cert=tls.crt
另外,我会将以 -----BEGIN CERTIFICATE-----
开头的 CA 附加到 api-gateway-client-certificate.crt
的内容中
【讨论】:
【参考方案2】:出现同样的错误,是因为 ca 文件命名错误。
用它来创建你的秘密:
kubectl create secret generic api --from-file=ca.crt=api-gateway-client-certificate.crt --namespace develop
【讨论】:
以上是关于Kubernetes Ingress-Controller 和 AWS API Gateway 客户端证书的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes - Kubernetes部署Kubernetes Dashbaord
Kubernetes——Kubernetes的介绍和使用 kubeadm方式搭建Kubernetes集群
Kubernetes——Kubernetes资源管理+Kubernetes实战入门