Проверка подлинности сертификата клиента TLS в istio

#ssl #kubernetes #istio

Вопрос:

В настоящее время я пытаюсь выяснить, как разрешить istio использовать сертификат клиента для аутентификации во внешней службе https, для которой требуется аутентификация клиента. Клиент-это модуль, развернутый в кластере kubernetes, в котором установлен istio. В настоящее время он обращается к внешней службе по протоколу http и не может быть изменен. Я знаю и проверил, что istio может выполнять инициализацию TLS, чтобы клиент все еще мог использовать http для ссылки на службу, и istio выполнит соединение TLS. Но если службе также требуется проверка подлинности сертификата клиента, могу ли я настроить istio для использования данного сертификата для этого?

Я попытался создать ServiceEntry, как описано в некоторых учебных пособиях, а также правила назначения для этого ServiceEntry. Есть ли конфигурация в DestinationRule или в другом месте, которая позволит мне это сделать?

Это моя нынешняя попытка. Имя хоста, для которого требуется аутентификация клиента, является app.k8s.ssg-masamune.com. Я уже проверил, что все сертификаты, которые я использую, работают через curl.

Сертификаты, однако, подписаны пользовательским центром сертификации.

 apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata:  name: external-svc-https spec:  hosts:  - api.dropboxapi.com  - www.googleapis.com  - developers.facebook.com  - app.k8s.ssg-masamune.com  - bookinfo.k8s.ssg-masamune.com  - edition.cnn.com  - artifactory.pds-centauri.com  location: MESH_EXTERNAL  ports:  - number: 80  name: http  protocol: HTTP  targetPort: 443   resolution: DNS ---  apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata:  name: app-dr spec:  host: app.k8s.ssg-masamune.com  trafficPolicy:  portLevelSettings:  - port:  number: 80  tls:  mode: SIMPLE  credentialName: app-secret  insecureSkipVerify: true  sni: app.k8s.ssg-masamune.com  subjectAltNames:  - app   

Комментарии:

1. Не могли бы вы привести примеры того, что вы уже пробовали, предпочтительно файлы yaml? Какую версию Istio вы используете?

2. Также я использую istio 1.12, kubernetes 1.22.

3. Еще немного тестирования, похоже, указывает на то, что проблема заключается в том, что я указываю сертификаты в секрете kubernetes. это приводит к сбою http-вызова в модуле с 503

4. неважно, я нашел решение, которое работает для меня.

5. Рад, что вы нашли решение. Пожалуйста, опубликуйте это как ответ и примите его, чтобы этот вопрос не остался без ответа. Ваш ответ может быть полезен членам сообщества, столкнувшимся с подобной проблемой в будущем.