# Шифрование

Чтобы обеспечить безопасное хранение паролей в конфигурационном файле `config.ini` (например, `backend/config/config.ini`), можно использовать шифрование.

Шифрование работает со следующими параметрами:

* `database_password`
* `proxy_password`
* `smtp_password`
* `ldap_password`
* `oAuthClientSecret`
* `database_password_archive`

Для шифрования паролей выполните следующие шаги:

1. Перейдите по адресу Sherpa Orchestrator, добавив к нему `/generate-key.php` и нажмите `Generate`. Будут сгенерированы случайные IV и ключ шифрования (закодированные в формате Base64). Обязательно сохраните их.
2. Перейдите по адресу Sherpa Orchestrator, добавив к нему `/encryptor.php`. Введите IV и ключ (полученные на предыдущем шаге) в соответствующие поля. В поле `Text to encrypt` введите пароль, который необходимо зашифровать, и нажмите `Generate`. Сохраните полученный зашифрованный пароль.
3. В конфигурационном файле `backend/config/config.ini` сохраните зашифрованный пароль в соответствующий параметр.
4. В конфигурационном файле добавьте параметр `use_encryption` со значением `1`. Сохраните изменения.
5. Создайте переменную окружения `ORCHESTRATOR_ENCRYPTION_KEY` и сохраните в ней ключ шифрования, полученный на первом шаге.
6. Убедитесь, что в `docker-compose.yml` в разделе `environment` контейнера `orchestrator` прописана строка: `ORCHESTRATOR_ENCRYPTION_KEY=${ORCHESTRATOR_ENCRYPTION_KEY}`.
7. Перезапустите контейнеры с помощью `run.sh`.
