SSL для внешних подключений
Данная инструкция описывает подключение к следующим сервисам:
- RabbitMQ
- Redis
- Postgres
- Minio
- InfluxDB
Важно
- Убедитесь, что конфигурация-SSL во внешних сервисах настроена на проверку только файла CA.crt.
- Если для внешних сервисов используются другие файлы CA.crt, убедитесь, что все они добавлены в связку. Для этого измените или дополните файл:
- testit/testit_unichart/files/ssl/ca-bundle.crt
- Прежде чем применять изменения, описанные в данной инструкции, убедитесь, что настроены внешние подключения к соответствующим сервисам.
RabbitMQ
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера RabbitMQ и файл CA.crt:
- rabbitmq_key.pem
- rabbitmq_cert.pem
- rabbitmq_ca.pem
- Перенесите сертификаты в соответствующую папку на вашем сервере RabbitMQ (например
/etc/certs
). - Создайте конфигурационный файл
.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
- Перенесите созданный файл в в соответствующую папку на вашем сервере RabbitMQ. Например,
/etc/rabbitmq/conf.d
. - Добавьте файл 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"
- Активируйте SSL для RabbitMQ в файле
values-override.yaml
:general: config: RABBITMQ_SSL_ENABLED: "true"
Redis
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера Redis и файл CA.crt:
- ca.crt
- redis.crt
- redis.key
- Перенесите сертификаты в соответствующую папку на вашем сервере Redis. Например:
- /tls/ca.crt
- /tls/redis.crt
- /tls/redis.key
- При запуске сервера 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
- Добавьте файл 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"
- Enable SSL for redis in
values-override.yaml
(and make sure that commonsslEnabled
flag is on):general: config: Redis__ConnectionString: "my-external-redis:6379,ssl=true" AUTH_CACHE_CONNECTION_STRING: "my-external-redis:6379,ssl=true"
PostgreSQL
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера Postgres и файл CA.crt:
- ca.crt
- server.crt
- server.key
- Перенесите сертификаты в соответствующую папку на вашем сервере Postgres. Например:
- /var/lib/postgresql/tls/ca.crt
- /var/lib/postgresql/tls/server.crt
- /var/lib/postgresql/tls/server.key
- При запуске сервера 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'
- Добавьте файл 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"
- В файле
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
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера MinIO и файл CA.crt:
- ca.crt
- server-minio.crt
- server-minio.key
- Перенесите сертификаты в соответствующую папку на вашем сервере MinIO. Например:
- ~/.minio/certs/CAs/ca.crt
- ~/.minio/certs/server-minio.crt
- ~/.minio/certs/server-minio.key
- Добавьте файл 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"
- В файле
values.yaml
илиvalues-override.yaml
илиvalues-ssl.yaml
переопределите строки подключения к MinIO, например:
background-service:
config:
AWS_CONNECTION_STRING: "https://my-external-minio:9000"
InfluxDB
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера InfluxDB и файл CA.crt:
- ca.crt
- server.crt
- server.key
- Перенесите сертификаты в соответствующую папку на вашем сервере InfluxDB. Например:
- /var/lib/influxdb/tls/ca.crt
- /var/lib/influxdb/tls/server.crt
- /var/lib/influxdb/tls/server.key
- Добавьте файл 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"
- В файле
values.yaml
илиvalues-override.yaml
илиvalues-ssl.yaml
переопределите строки подключения к InfluxDB, например:general: config: INFLUX_CONNECTION_STRING: "https://my-external-influxdb:8086"
- Примените изменения с помощью команды:
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