Невозможно настроить https в Istio Gateway - PullRequest
0 голосов
/ 18 октября 2018

Настройка Istio Gateway с использованием http в порядке.

Но я не могу настроить https.Я следовал инструкции https://istio.io/docs/tasks/traffic-management/secure-ingress/

Istio: 1.0.2 (установка с использованием шлема) Kubernetes 1.10.3 eks

Я использую сертификат COMODO.

Только в первый раз я могу получить доступ к странице, используя https.После доступа к странице, если я пытаюсь подключиться снова, я получаю следующую ошибку в браузере.

mycompany.com unexpectedly closed the connection.
Try:

Checking the connection
Checking the proxy and the firewall

Если я использую curl, я получаю следующую ошибку.

curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to qa-web.ffau.to:443

Если я тестирую с использованием openssl,

openssl s_client -tls1 -connect mycompany.com:443 -msg

Ошибка

140735917949896:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/ssl/s3_pkt.c:522:

Так я создал секрет.

kubectl create -n istio-system secret tls istio-ingressgateway-certs --key ffau.to.key  --cert ffau.to.crt 

Это вид шлюза и виртуального сервиса.

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: mycompany-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
servers:
 - port:
     number: 443
     name: https
     protocol: HTTPS
   tls:
     mode: SIMPLE
     serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
     privateKey: /etc/istio/ingressgateway-certs/tls.key
    hosts:
   - "mycompany.com"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ffau-qa-phoenix-us
spec:
  hosts:
  - "mycompany.com"
  gateways:
  - mycompany-gateway
  http:
  - match:
    - uri:
       prefix: /us/account
    - uri:
        prefix: /us/reserve
    - uri:
        exact: /phoenix-bundle.js
    - uri:
       exact: /client-env.js
    - uri:
       exact: /env-variables
    - uri:
       exact: /graphql
    route:
    - destination:
        host: myui.default.svc.cluster.local
        port:
          number: 8000

1 Ответ

0 голосов
/ 19 октября 2018

Произошла похожая проблема с переполнением стека Не удалось подключиться к службе HTTPS с использованием шлюза ISTIO и виртуальной службы , https://github.com/istio/istio/issues/6071

Я нашел решение в стеке проблема переполнения .Открытие порта 80 и перенаправление на 443 с использованием httpsRedirect: true

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: my-gateway
spec :
  selector:
    istio: ingressgateway # use istio default controller
  servers:
 - port:
     number: 80
     name: http
     protocol: HTTP
   hosts:
   - "mydomain.com"
   tls:
     httpsRedirect: true
 - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
      privateKey: /etc/istio/ingressgateway-certs/tls.key
    hosts:
    - "mydomain.com"
...