Ошибка 1С-Битрикс «Crypto is not available»: как добавить ключ шифрования

Что значит ошибка «There is no crypto[crypto_key] in .settings.php» в 1С-Битрикс и как сгенерировать и прописать ключ шифрования.

Правки в .settings.php и init.php вносите через SSH или FTP и сделайте копию файла: ошибка в нём останавливает весь сайт, а через админку её не исправить.

Когда возникает

Ошибка редкая и обычно появляется после обновления ядра — чаще всего при сохранении данных пользователя. В новых версиях Битрикс шифрует часть данных, и для этого нужен ключ в файле настроек. Иногда при обновлении он не создаётся сам.

Решение

1. Сгенерируйте случайный ключ из 32 символов, например:

openssl rand -hex 16

2. Откройте /bitrix/.settings.php и добавьте секцию перед последней закрывающей скобкой массива:

'crypto' => [
    'value' => [
        'crypto_key' => 'сюда_ваш_ключ_из_32_символов',
    ],
    'readonly' => true,
],

3. Сохраните файл и повторите действие, на котором была ошибка.

Важно

  • Файл называется .settings.php — с точкой в начале и буквой «s» перед «.php».
  • Не меняйте ключ потом: данные, зашифрованные старым ключом, перестанут читаться.
  • При переносе сайта на другой сервер переносите .settings.php вместе с ключом.

Все статьи

Расскажите о задаче — подберём платформу и оценим работу

Обсудить проект