VirtualService с серверной частью HTTPS

У меня есть служба с самоподписанным сертификатом SSL, которую я хочу предоставить в Интернете. Я хотел бы, чтобы Istio Gateway разорвала SSL-соединение (используя сертификат от cert-manager), а дополнительный компонент istio для внутренней обработки HTTPS-трафика в серверной службе.

Однако, когда я пытаюсь это сделать, я получаю ошибки от Envoy:

TLS error: 268435648:SSL routines:OPENSSL_internal:PEER_DID_NOT_RETURN_A_CERTIFICATE

Моя внутренняя служба представлена ​​так:

---
kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: stratos
  namespace: stratos
spec:
  gateways:
    - cf-system/istio-ingressgateway
  hosts:
    - console.example.com
  http:
    - route:
        - destination:
            host: console-ui-ext
            
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: stratos
  namespace: stratos
spec:
  host: console-ui-ext
  trafficPolicy:
    tls:
      mode: SIMPLE

---
kind: Gateway
SNIP
  - hosts:
    - console.example.com
    port:
      name: https-workloads
      number: 443
      protocol: HTTPS
    tls:
      credentialName: my-cert
      mode: SIMPLE

В istio-sidecar я могу curl -k https://localhost без проблем. Однако я получаю сообщение об ошибке SSL, когда использую curl -k https://console-ui-ext.stratos.svc.cluster.local

Что мне не хватает? Мне показалось странным, что все маршруты, добавленные в Envoy, outbound|443, я ожидал увидеть и входящие маршруты там. Я не хочу передавать TLS на шлюз, так как сертификат серверной службы недействителен.

Istio использует настройку STRICT mTLS.

Есть ли шаг, который я забыл при использовании бэкэнда HTTPS?


person Chaos    schedule 21.11.2020    source источник


Ответы (1)


Оказывается, это произошло из-за строгости mTLS. Коляска не ожидала, что будет прибывать только TLS-трафик, вызывающий проблему. Отключение mTLS для этого приложения решило мою проблему.

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: stratos
  namespace: stratos
spec:
  mtls:
    mode: DISABLE
person Chaos    schedule 21.11.2020