Это поздний ответ, но сведения о переадресации сертификата клиента поддерживаются в 1.1.0 выпуске .Это стандартное поведение шлюза https, однако вам необходимо включить взаимный TLS, чтобы это работало глобально.Для этого примените следующий MeshPolicy
объект:
apiVersion: "authentication.istio.io/v1alpha1"
kind: "MeshPolicy"
metadata:
name: "default"
spec:
peers:
- mtls: {}
После применения https-вызовов на вход перенаправит на сервер заголовок X-Forwarded-Client-Cert
.
Однако имейте в видуесли глобальные mtls включены, сервисные вызовы в кластере также должны использовать tls.Это можно сделать, создав DestinationRule
для каждой службы с режимом, установленным на ISTIO_MUTUAL
(или MUTUAL
, если вы хотите использовать собственные сертификаты клиента вместо сертификатов, сгенерированных Citadel):
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: myApp
namespace: default
spec:
host: myApp
trafficPolicy:
tls:
mode: ISTIO_MUTUAL