#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. Рад, что вы нашли решение. Пожалуйста, опубликуйте это как ответ и примите его, чтобы этот вопрос не остался без ответа. Ваш ответ может быть полезен членам сообщества, столкнувшимся с подобной проблемой в будущем.