Ошибка 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вместе с ключом.