Test ITTest IT
  • Руководство системного администратора
  • Руководство пользователя
  • Загрузить Test IT Enterprise
  • GitHub
  • Руководство по работе с Личным кабинетом
  • Руководство пользователя
  • Личный кабинет Test IT Cloud
  • GitHub
  • Release notes: Test IT Enterprise
  • Release notes: Test IT Cloud
  • Новое в документации
  • Центр помощи
  • Видеокурс по Test IT
  • Часто задаваемые вопросы
  • Спросите нас в Telegram
      
    
  • Руководство системного администратора
  • Руководство пользователя
  • Загрузить Test IT Enterprise
  • GitHub
  • Руководство по работе с Личным кабинетом
  • Руководство пользователя
  • Личный кабинет Test IT Cloud
  • GitHub
  • Release notes: Test IT Enterprise
  • Release notes: Test IT Cloud
  • Новое в документации
  • Центр помощи
  • Видеокурс по Test IT
  • Часто задаваемые вопросы
  • Спросите нас в Telegram
  • Установка

    • Установка в Docker Compose
      • Описание .env-файла
    • Установка в Kubernetes
      • Значения, используемые в файле "values"
  • Настройка внешних подключений и повышение их безопасности

    • О настройке внешних подключений
    • Настройка внешних подключений в Docker Compose

      • Подключение RabbitMQ в Docker Compose
      • Подключение стека Elasticsearch, Logstash и Kibana (ELK) в Docker Compose
      • Подключение MinIO в Docker Compose
      • Подключение Redis в Docker Compose
      • Подключение InfluxDB в Docker Compose
      • Подключение PostgreSQL в Docker Compose
    • Настройка внешних подключений в Kubernetes

      • Подключение RabbitMQ в Kubernetes
      • Подключение MinIO в Kubernetes
      • Подключение Redis в Kubernetes
      • Подключение InfluxDB в Kubernetes
      • Подключение PostgreSQL в Kubernetes
    • Описание микросервисов Test IT
  • Настройка внешних ссылок для перехода из Test IT
  • Перезапуск системы

    • Перезапуск системы в Docker Compose
    • Перезапуск системы в Kubernetes
  • Работа с компонентами Kubernetes

    • Изменение выделенных ресурсов в Kubernetes
    • Замена рабочего узла (ноды) в Kubernetes
    • Настройка SSL для внутренних подключений в Kubernetes
    • Добавление самоподписанных сертификатов в контейнеры (Kubernetes)
    • Переход на новый кластер Kubernetes
    • Перезапуск подов и остановка компонентов Test IT в Kubernetes
    • Переопределение переменных и настроек приложений в Kubernetes
  • Обновление

    • Обновление в Docker Compose

      • Обновление Test IT в Docker Compose
      • Структура файла docker-compose.yml в версии 4.5
    • Обновление в Kubernetes

      • Обновление в Test IT в Kubernetes
      • Обновление старых версий Test IT в Kubernetes
  • Переход из Docker в Kubernetes

    • Переход из Docker в Kubernetes: Test IT 5.3 и более поздние версии
    • Переход из Docker в Kubernetes: Test IT 5.2 и более ранние версии
  • Проверка лицензии

    • Проверка лицензии в Docker Compose
    • Проверка лицензии в Kubernetes
  • Резервное копирование

    • Резервное копирование в Docker Compose
    • Резервное копирование в Kubernetes: Test IT 5.3 и более поздние версии
    • Резервное копирование в Kubernetes: Test IT 5.2 и более ранние версии
  • Логирование пользовательских действий (Docker Compose)
  • Настройка HTTPS

    • Настройка HTTPS в Docker Compose
    • Настройка HTTPS в Kubernetes
  • Добавление самоподписанных сертификатов в контейнеры (Docker Compose)
  • Удаление системы

    • Удаление Test IT в Docker Compose
    • Удаление Test IT в Kubernetes

SSL для внешних подключений

Данная инструкция описывает подключение к следующим сервисам:

  • RabbitMQ
  • Redis
  • Postgres
  • Minio
  • InfluxDB

Важно

  1. Убедитесь, что конфигурация-SSL во внешних сервисах настроена на проверку только файла CA.crt.
  2. Если для внешних сервисов используются другие файлы CA.crt, убедитесь, что все они добавлены в связку. Для этого измените или дополните файл:
    • testit/testit_unichart/files/ssl/ca-bundle.crt
  3. Прежде чем применять изменения, описанные в данной инструкции, убедитесь, что настроены внешние подключения к соответствующим сервисам.

RabbitMQ

  1. Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера RabbitMQ и файл CA.crt:
  • rabbitmq_key.pem
  • rabbitmq_cert.pem
  • rabbitmq_ca.pem
  1. Перенесите сертификаты в соответствующую папку на вашем сервере RabbitMQ (например /etc/certs).
  2. Создайте конфигурационный файл .conf. Например, 20-ssl.conf :
listeners.ssl.default            = 5671
ssl_options.cacertfile           = /etc/certs/rabbitmq_ca.pem
ssl_options.certfile             = /etc/certs/rabbitmq_cert.pem
ssl_options.keyfile              = /etc/certs/rabbitmq_key.pem
ssl_options.verify               = verify_none
ssl_options.fail_if_no_peer_cert = false
  1. Перенесите созданный файл в в соответствующую папку на вашем сервере RabbitMQ. Например, /etc/rabbitmq/conf.d.
  2. Добавьте файл ca-bundle-*.crt в директорию testit_unichart/files/ssl/ и добавьте в секцию general.configFile файла values-override.yaml или values-ssl.yaml следующее:
    general:
      configFile:
        ##  Use to enable custom certificates
        ssl-ca-bundle:
          # Already have been there (hypothetically)
          ca-bundle-1.crt: "files/ssl/ca-bundle-1.crt"
          # New file
          ca-bundle-2.crt: "files/ssl/ca-bundle-2.crt"
    
  3. Активируйте SSL для RabbitMQ в файле values-override.yaml:
    general:
      config:
        RABBITMQ_SSL_ENABLED: "true"
    

Redis

  1. Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера Redis и файл CA.crt:
    • ca.crt
    • redis.crt
    • redis.key
  2. Перенесите сертификаты в соответствующую папку на вашем сервере Redis. Например:
    • /tls/ca.crt
    • /tls/redis.crt
    • /tls/redis.key
  3. При запуске сервера Redis убедитесь, что добавлены следующие параметры запуска:
redis-server \
--appendonly yes \
--tls-port 6379 \
--port 0 \
--tls-cert-file /tls/redis.crt \
--tls-key-file /tls/redis.key \
--tls-ca-cert-file /tls/ca.crt \
--tls-auth-clients no
  1. Добавьте файл ca-bundle-*.crt в директорию testit_unichart/files/ssl/ и добавьте в секцию general.configFile файла values-override.yaml или values-ssl.yaml следующее:
    general:
      configFile:
        ##  Use to enable custom certificates
        ssl-ca-bundle:
          # Already have been there (hypothetically)
          ca-bundle-1.crt: "files/ssl/ca-bundle-1.crt"
          # New file
          ca-bundle-2.crt: "files/ssl/ca-bundle-2.crt"
    
  2. Enable SSL for redis in values-override.yaml (and make sure that common sslEnabled flag is on):
    general:
      config:
        Redis__ConnectionString: "my-external-redis:6379,ssl=true"
        AUTH_CACHE_CONNECTION_STRING: "my-external-redis:6379,ssl=true"
    

PostgreSQL

  1. Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера Postgres и файл CA.crt:
    • ca.crt
    • server.crt
    • server.key
  2. Перенесите сертификаты в соответствующую папку на вашем сервере Postgres. Например:
    • /var/lib/postgresql/tls/ca.crt
    • /var/lib/postgresql/tls/server.crt
    • /var/lib/postgresql/tls/server.key
  3. При запуске сервера Postgres убедитесь, что расположение сертификатов передано верно:
postgres -c 'max_connections=300' -c 'shared_buffers=256MB' -c 'ssl=on' \
-c 'ssl_ca_file=/var/lib/postgresql/tls/ca.crt' \
-c 'ssl_cert_file=/var/lib/postgresql/tls/server.crt' \
-c 'ssl_key_file=/var/lib/postgresql/tls/server.key'
  1. Добавьте файл ca-bundle-*.crt в директорию testit_unichart/files/ssl/ и добавьте в секцию general.configFile файла values-override.yaml или values-ssl.yaml следующее:
    general:
      configFile:
        ##  Use to enable custom certificates
        ssl-ca-bundle:
          # Already have been there (hypothetically)
          ca-bundle-1.crt: "files/ssl/ca-bundle-1.crt"
          # New file
          ca-bundle-2.crt: "files/ssl/ca-bundle-2.crt"
    
  2. В файле values.yaml измените значение переменных для подключения к базам данных:
# Пример для license-service
license-service:
  config:
    LICENSE_DB_CONNECTION_STRING: >
      Host=my-external-postgres;
      Port=5432;
      Database=licensedb;
      Username=my-username;
      Password=my-password;
      Command Timeout=30;
      Target Session Attributes=any;

MinIO

  1. Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера MinIO и файл CA.crt:
    • ca.crt
    • server-minio.crt
    • server-minio.key
  2. Перенесите сертификаты в соответствующую папку на вашем сервере MinIO. Например:
    • ~/.minio/certs/CAs/ca.crt
    • ~/.minio/certs/server-minio.crt
    • ~/.minio/certs/server-minio.key
  3. Добавьте файл ca-bundle-*.crt в директорию testit_unichart/files/ssl/ и добавьте в секцию general.configFile файла values-override.yaml или values-ssl.yaml следующее:
    general:
      configFile:
        ##  Use to enable custom certificates
        ssl-ca-bundle:
          # Already have been there (hypothetically)
          ca-bundle-1.crt: "files/ssl/ca-bundle-1.crt"
          # New file
          ca-bundle-2.crt: "files/ssl/ca-bundle-2.crt"
    
  4. В файле values.yaml или values-override.yaml или values-ssl.yaml переопределите строки подключения к MinIO, например:
background-service:
  config:
    AWS_CONNECTION_STRING: "https://my-external-minio:9000"

InfluxDB

  1. Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера InfluxDB и файл CA.crt:
    • ca.crt
    • server.crt
    • server.key
  2. Перенесите сертификаты в соответствующую папку на вашем сервере InfluxDB. Например:
    • /var/lib/influxdb/tls/ca.crt
    • /var/lib/influxdb/tls/server.crt
    • /var/lib/influxdb/tls/server.key
  3. Добавьте файл ca-bundle-*.crt в директорию testit_unichart/files/ssl/ и добавьте в секцию general.configFile файла values-override.yaml или values-ssl.yaml следующее:
    general:
      configFile:
        ##  Use to enable custom certificates
        ssl-ca-bundle:
          # Already have been there (hypothetically)
          ca-bundle-1.crt: "files/ssl/ca-bundle-1.crt"
          # New file
          ca-bundle-2.crt: "files/ssl/ca-bundle-2.crt"
    
  4. В файле values.yaml или values-override.yaml или values-ssl.yaml переопределите строки подключения к InfluxDB, например:
    general:
      config:
        INFLUX_CONNECTION_STRING: "https://my-external-influxdb:8086"
    
  5. Примените изменения с помощью команды:
    cd <installation_folder>
    helm upgrade --install -f testit_unichart/values-override.yaml -n <my-namespace> --create-namespace testit testit_unichart/ --wait --timeout 10m
    # Дождитесь начала работы всех компонентов продукта.
    watch -n 1 kubectl -n <my-namespace> get pods
    
Обновлено: