Проблема с настройкой SSL-сертификатов для контроллера traefik в AWS Kubernetes

#ssl #https #kubernetes #traefik #aws-load-balancer

#ssl #https #kubernetes #traefik #aws-балансировщик нагрузки

Вопрос:

Я развертываю веб-приложение (набор взаимодействующих серверов узлов) на kubernetes. Я использую контроллер Traefik в качестве балансировщика нагрузки, а также для внутренней связи в кластере. Я приобрел доменное имя через AWS и настроил его с помощью простого балансировщика нагрузки по маршруту 53. Он в значительной степени работает для http://.com domain-name . Я пытаюсь настроить SSL-сертификаты (приобретенные у внешнего поставщика, не AWS), чтобы сделать веб-сайт https. Но это не работает. Я всегда заканчиваю тем, что время ожидания соединения истекло. Но http-способ работает довольно хорошо.

  1. Я получил SSL-сертификаты от ИТ-отдела моей компании с файлами csr, key, interm. Исходя из этого, была создана новая конфигурация в AWS Certificate manager.
  2. Контроллер входа Traefik теперь настроен с включенным SSL, принудительным SSL, а также с телом сертификата и набором ключей. Я использую диаграмму управления traefik, где я сохраняю их в values.yaml.
  3. Ссылка балансировщика нагрузки, созданная после установки контроллера traefik, настраивается с помощью конфигурации AWS cert manager, созданной на шаге (1). В настройках балансировщиков нагрузки в консоли AWS открываем порт https.
  4. Кроме того, я настраиваю секретные объекты, содержащие SSL-сертификаты, во время настройки входа.

Для начинающих это пример приложения, я пытаюсь получить доступ через контроллер traefik через https.

 apiVersion: v1
kind: Service
metadata:
  name: hello-kubernetes
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: hello-kubernetes
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-kubernetes
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-kubernetes
  template:
    metadata:
      labels:
        app: hello-kubernetes
    spec:
      containers:
      - name: hello-kubernetes
        image: gcr.io/hello-minikube-zero-install/hello-node
        ports:
        - containerPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - http:
      paths:
      - path: / 
        backend:
          serviceName: hello-kubernetes
          servicePort: 80
  tls:
   - secretName: traefik-ui-tls-cert 
  

Что касается схемы управления контроллером traefik,

 ssl:
  enabled: true
  enforced: false
  permanentRedirect: false
  upstream: false
  insecureSkipVerify: false
  generateTLS: false
  defaultSANList: []
  defaultIPList: []
  defaultCert: <crt from IT> (which I converted from csr file that IT gave me using openssh tool) 
  defaultKey: <key from IT> 
  

И в консоли aws для балансировщика нагрузки на вкладке «слушатели» я добавляю следующую конфигурацию.

 HTTPS-443-HTTP-80-e1e4096b-6a31-4b2d-9d33-9f3f94ab0320 (ACM) Change
  

Я должен иметь доступ к своему веб-сайту по протоколу https. Но я могу получить к нему доступ только по http.
Есть предложения?