Настройка SSL для внутренних подключений в Kubernetes
Чтобы настроить внутреннее подключение:
- Создайте требуемые SSL-сертификаты, ключи и связки для DNS-имен (CN) сервисов, для которых будет использоваться SSL.
- Перенесите соответствующие сертификаты, ключи и центры сертификации в
testit_unichart/files/ssl
:- testit/testit_unichart/files/ssl/ca.crt
- testit/testit_unichart/files/ssl/auth-cache.crt
- testit/testit_unichart/files/ssl/auth-cache.key
- testit/testit_unichart/files/ssl/gotenberg-api.crt
- testit/testit_unichart/files/ssl/gotenberg-api.key
- testit/testit_unichart/files/ssl/influxdb.crt
- testit/testit_unichart/files/ssl/influxdb.key
- testit/testit_unichart/files/ssl/minio.crt
- testit/testit_unichart/files/ssl/minio.key
- testit/testit_unichart/files/ssl/postgres.crt
- testit/testit_unichart/files/ssl/postgres.key
- testit/testit_unichart/files/ssl/rabbitmq.crt
- testit/testit_unichart/files/ssl/rabbitmq.key
- testit/testit_unichart/files/ssl/rabbitmq.conf
- В файле
values-override.yaml
илиvalues-ssl.yaml
активируйте SSL для соответствующих сервисов. Нужные поля помечены комментарием сinternal SSL
. Пример дляauth-cache
:auth-cache: # Enable internal SSL for redis args: - "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" configFile: auth-cache-ssl-files: redis.crt: "files/ssl/auth-cache.crt" redis.key: "files/ssl/auth-cache.key" ca.crt: "files/ssl/ca.crt" volumes: ssl: fromConfigMap: auth-cache-ssl-files mounts: auth-cache: mountPath: /tls
- В файле
values-override.yaml
илиvalues-ssl.yaml
активируйте соответствующие переменные и настройки для SSL. Пример дляauth-cache
:general: config: Redis__ConnectionString: "auth-cache:6379,ssl=true" AUTH_CACHE_CONNECTION_STRING: "auth-cache:6379,ssl=true" APPLICATION__SECURITY__TRUSTEDCERTIFICATELOCATION: "/app/certs" volumes: ## Use to enable internal SSL ssl-ca-internal: fromConfigMap: ssl-ca-internal mounts: mountPath: /app/certs/ca.crt subPath: ca.crt configFile: ## Use to enable internal SSL ssl-ca-internal: ca.crt: "files/ssl/ca.crt"
- Примените изменения с помощью команды:
cd <installation_folder> export NAMESPACE=<my-namespace> helm upgrade --install -f testit_unichart/values-override.yaml -n $NAMESPACE --create-namespace testit testit_unichart/ --wait --timeout 10m # Дождитесь начала работы всех компонентов продукта. watch -n 1 kubectl -n $NAMESPACE get pods
Примечание: для rabbitmq
также нужно будет создать дополнительный файл testit_unichart/files/ssl/rabbitmq.conf
:
listeners.ssl.default = 5671
ssl_options.cacertfile = /etc/certs/server_ca.pem
ssl_options.certfile = /etc/certs/server_crt.pem
ssl_options.keyfile = /etc/certs/server_key.pem
ssl_options.verify = verify_none
ssl_options.fail_if_no_peer_cert = false