SSL для внешних подключений
Данная инструкция описывает подключение к следующим сервисам:
- RabbitMQ
- Redis
- Postgres
- Minio
- InfluxDB
Важно
- Убедитесь, что конфигурация-SSL во внешних сервисах настроена на проверку только файла CA.crt.
- Если для внешних сервисов используются другие файлы CA.crt, убедитесь, что все они добавлены в связку. Для этого измените или дополните файл:
testit_backend/templates/configmaps/ssl/ca-bundle.yaml
- Прежде чем применять изменения, описанные в данной инструкции, убедитесь, что настроены внешние подключения к соответствующим сервисам.
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.crt в конфигурационную карту
ca-bundle
:
# testit_backend/templates/configmaps/ssl/ca-bundle.yaml
{{- if .Values.sslEnabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "ca-bundle"
labels:
app: testit
content: ssl-ca
data:
ca.crt: |-
-----BEGIN CERTIFICATE-----
contents
-----END CERTIFICATE-----
{{- end }}
- Активируйте SSL для RabbitMQ в файле
values-override.yaml
. Убедитесь, что включен общий флагsslEnabled
:
sslEnabled: true
rabbitmq:
enabled: false
sslEnabled: 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.crt в конфигурационную карту
ca-bundle
:
# testit_backend/templates/configmaps/ssl/ca-bundle.yaml
{{- if .Values.sslEnabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "ca-bundle"
labels:
app: testit
content: ssl-ca
data:
ca.crt: |-
-----BEGIN CERTIFICATE-----
contents
-----END CERTIFICATE-----
{{- end }}
- Enable SSL for redis in
values-override.yaml
(and make sure that commonsslEnabled
flag is on):
sslEnabled: true
authCache:
enabled: false
sslEnabled: 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.crt в конфигурационную карту
ca-bundle
:
# testit_backend/templates/configmaps/ssl/ca-bundle.yaml
{{- if .Values.sslEnabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "ca-bundle"
labels:
app: testit
content: ssl-ca
data:
ca.crt: |-
-----BEGIN CERTIFICATE-----
contents
-----END CERTIFICATE-----
{{- end }}
- Активируйте SSL для Postgres в файле
values-override.yaml
. Убедитесь, что общий флагsslEnabled
включен:
sslEnabled: true
postgres:
enabled: false
sslEnabled: true
- В файле
values-override.yaml
задайте значение переменных для SSL:
general:
sslConfig:
POSTGRES_HOST:
POSTGRES_PORT:
POSTGRES_USER:
POSTGRES_PASSWORD:
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.crt в конфигурационную карту
ca-bundle
:
# testit_backend/templates/configmaps/ssl/ca-bundle.yaml
{{- if .Values.sslEnabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "ca-bundle"
labels:
app: testit
content: ssl-ca
data:
ca.crt: |-
-----BEGIN CERTIFICATE-----
contents
-----END CERTIFICATE-----
{{- end }}
- Активируйте SSL для MinIO в файле
values-override.yaml
. Убедитесь, что общий флагsslEnabled
включен:
sslEnabled: true
minio:
enabled: false
sslEnabled: true
InfluxDB
- Создайте SSL-сертификаты, используя доменное имя (CN) вашего сервера Influx и файл 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.crt в конфигурационную карту
ca-bundle
:
# testit_backend/templates/configmaps/ssl/ca-bundle.yaml
{{- if .Values.sslEnabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "ca-bundle"
labels:
app: testit
content: ssl-ca
data:
ca.crt: |-
-----BEGIN CERTIFICATE-----
contents
-----END CERTIFICATE-----
{{- end }}
- Активируйте SSL для InfluxDB в файле
values-override.yaml
. Убедитесь, что общий флагsslEnabled
включен:
sslEnabled: true
influxdb:
enabled: false
sslEnabled: true
- Примените изменения с помощью команды:
cd ~/testit
helm -n <namespace> -f values-override.yaml upgrade testit-backend testit_backend/