Настройка сертификатов
Данный раздел описывает добавление собственных truststore и сертификатов в компоненты Keycloak, Traefik и сервисы PAM, работающие по mTLS.
Добавление truststore в Keycloak
Поместите файлы keystore формата
.jks,.p12в Keycloak в каталог${PROJECT_DIR}/volumes/keycloak/truststore/.PKCS#12-файл должен быть без пароля — это ограничение Keycloak.
Добавьте привязку в docker-compose. Для этого откройте:
sudo nano docker-compose.ymlНайдите
volume-bindingили создайте, если его нет. После блокаterraform_keysдобавьте дляweb-auth:- type: bind source: ./volumes/keycloak/truststore target: /opt/keycloak/conf/truststores read_only: false bind: create_host_path: falseПерезапустите контейнеры:
sudo docker compose down sudo docker compose up -d
Добавление сертификатов в LB Traefik
Добавьте нужные сертификаты (cert + key) в
${PROJECT_DIR}/volumes/traefik/certs-custom.Добавьте привязку в docker-compose. Для этого откройте:
sudo nano docker-compose.ymlНайдите
volume-bindingили создайте, если его нет. После блокаterraform_certsдобавьте дляtraefik:- type: bind source: ./volumes/traefik/certs-custom target: /bpam/volumes/traefik-certs-custom read_only: true bind: create_host_path: falseОбновите конфигурацию Traefik. Откройте:
sudo nano ./volumes/traefik/etc/traefik/000-default.ymlЗамените путь
/bpam/volumes/certs/и названия файлов на актуальные:defaultCertificate: certFile: /bpam/volumes/traefik-certs-custom/my-cert.pem keyFile: /bpam/volumes/traefik-certs-custom/my-key.keyПерезапустите контейнеры:
sudo docker compose down sudo docker compose up -d
Traefik обновлен и использует ваши сертификаты.
Обновление CA для межсервисных запросов (mTLS)
Подготовьте корневой сертификат организации в виде ca.pem. Для сервисов, которые используют mTLS, сертификаты располагаются по пути /bpam/volumes/certs.
В случае замены сертификатов для сервисов, например Vault, используйте корневой сертификат ca.pem и поместите CA и сертификат с ключом в сам сервис через volume binding.
Пример для сервиса worker-ssh:
Откройте
docker-compose.ymlи добавьте запись вида:sudo nano docker-compose.ymlservices: ... worker-ssh: ... volumes: ... # Новый CA - type: bind source: ./volumes/certs/ca.pem target: /bpam/volumes/certs/ca.pem read_only: true bind: create_host_path: falseОткройте файл окружения и проверьте значения для сертификатов:
sudo nano worker-ssh.envCONTROL_GRPC_AUTH_USE_MTLS=true CONTROL_GRPC_AUTH_CA_CERT=/opt/bpam/certs/ca.pemЕсли вы используется для Traefik собственные сертификаты, мы рекомендуем заменить CA для сервисов
worker-ssh,worker-rdp-proxy,worker-rdp-ctl.При выпуске сертификатов для сервисов выше, добавьте
alt-dns-name control-<pam hostname>вместе с<pam-hostname>
Перезапустите контейнеры:
sudo docker compose down sudo docker compose up -d