Сертификат клиента Kubernetes Ingress-Controller и AWS API Gateway - PullRequest
0 голосов
/ 14 сентября 2018

У меня проблема, я хочу использовать клиентский сертификат API Gateway с моей конфигурацией входа.

  1. Я создал сертификат на AWS.
  2. Я создал секрет этого сертификата:

    kubectl create secret generic api --from-file=api-gateway-client-certificate.crt 
    --namespace develop
    
  3. Я добавил конфигурацию в мой входной файл:

    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: секретный "velop / api "не содержит ни пары ключей, ни сертификата CA

Я использую Kubernetes v1.11.1 и nginx-ingress-controller v0.17.1

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Да, вы правы, у меня нет закрытого ключа, я использую сертификат клиента от API Gateway, и он не дает мне доступа к ключу, у меня просто есть CA.

Я пытался добавить закрытый ключ из моего домена CA, но закрытый ключ не совпадает с открытым ключом https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html#certificate-validation

Я не знаю, как добавить сертификат клиента API Gateway.

0 голосов
/ 14 сентября 2018

Итак, вам не хватает ключа и / или CA для вашего сертификата. Вы использовали частный 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

...