У меня проблема, я хочу использовать сертификат клиента шлюза API с моей входящей конфигурацией.
Я создал секрет этого сертификата:
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"`
Наконец, я не знаю, почему я получаю эту ошибку на входящем контроллере:
Error obtaining X.509 certificate: Secret "develop/api" contains no keypair or CA certificate
Я использую Kubernetes v1.11.1 и nginx-ingress-controller v0.17.1





Таким образом, вам не хватает ключа и / или CA для вашего сертификата. Вы использовали частный центр сертификации в AWS? Обычное управление сертификатами не дает вам ключевого файла, потому что оно создает CSR под капотом.
Обычно секрет tls создается следующим образом:
kubectl -n kube-system create secret tls my-tls-cert --key=tls.key --cert=tls.crt
Кроме того, я бы добавил CA, который начинается с -----BEGIN CERTIFICATE-----, к содержимому api-gateway-client-certificate.crt.
Была такая же ошибка, это из-за неправильного имени файла ca.
Используйте это, чтобы создать свой секрет:
kubectl create secret generic api --from-file=ca.crt=api-gateway-client-certificate.crt --namespace develop