Skip to content

Исправляем ошибку вида "Длина зашифрованного блока не соответствует длинне ключа (размер данных должен быть 256 байт)" на серверах с ISPmanager 5

Исправляем ошибку вида "Длина зашифрованного блока не соответствует длинне ключа (размер данных должен быть 256 байт)" на серверах с ISPmanager 5

В случае возникновения ошибки вида

Failure

Возникла ошибка при работе с ключами или сертификатами. Длинна зашифрованного блока не соответствует длинне ключа (размер данных должен быть 256 байт)

при обращении к разделам, связанным с работой с базой данных mysql выполняем следующее:

  1. Переходим в каталог /usr/local/mgr5/etc
  2. Смотрим старый пароль

/opt/ispsystem/sbin/sqlite3 /usr/local/mgr5/etc/ispmgr.db 
Видим что-то вроде
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions Enter SQL statements terminated with a
";" sqlite>

выполняем запрос вида

 select * from db_server;

получаем выхлоп вида

1|MySQL|mysql|localhost|root|My_PaSsWorD|||off 

из которого нас интересует длинная строка, что будет на месте, где в нашем примере My_PaSsWorD.

Выходим из консоли sqlite

sqlite> .exit
  1. Получаем новый пароль в зашифрованном виде

    echo -n 'NewPaSsWord' | openssl rsautl -encrypt -inkey ispmgr.pem | base64 -w 0
    
    где вместо NewPaSsWord указываем наш новый пароль.

  2. Указываем наш новый пароль в базе /usr/local/mgr5/etc/ispmgr.db

    sqlite3 /usr/local/mgr5/etc/ispmgr.db
    

и выполняем запрос вида

UPDATE db_server set password="Long_Long_String";

где вместо Long_Long_String указываем строку, полученную на предыдущем шаге в вхлопе от openssl.

После чего выходим из sqlite, как делали это ранее в примере выше(когда смотрели пароль).

  1. Сбрасываем пароль mysql/mariadb

Делаем

systemctl stop mariadb
или

systemctl stop mysql

Затем

mysqld_safe --skip-grant-tables &

и

mysql -uroot 
use mysql;
update user set password=PASSWORD("NewPaSsWord") where User='root';

Где NewPaSsWord - это наш новый пароль в не зашифрованном виде.

flush privileges;

Выходим из косноли mysql(команда exit).

Киляем mysqld_safe

ps auxf|grep mysql kill -TERM 10777
Киляем ihttpd и запускаем заново
systemctl restart ihttpd
также киляем процесс bin/core ispmgr с помощью killall или kill -15 pid.

Заходим в панель, и убеждаемся что проблема больше не проявляется.

Если нужно посмотреть зашифрованный пароль, указанный в базе, делаем следующее

sqlite3 /usr/local/mgr5/etc/ispmgr.db SQLite
select * from db_server; 

получаем

1|MySQL|mysql|localhost|root|My_PaSsWorD|||off

после чего полученное значение My_PaSsWorD, указанное между | и | сразу за root указываем вместо строки шифрованное_значение в следующем команде

echo `echo 'шифрованное_значение' | base64 -d | openssl rsautl -decrypt -inkey ispmgr.pem`

Проверить, использует ли панель шифрование пароля или нет, можно запросом вида

select * from props where name='cryptconvert_db_server_password';

Если подобная запись в таблице props присутствует, значит пароль шифруется.

Отключить шифрование пароля можно запросом

delete from props where name='cryptconvert_db_server_password';
после выполнения которого необходимо войти в панель и повторно изменить пароль базы данных.

Если системная версия не подходит, используем /opt/ispsystem/sbin/sqlite3 или /opt/ispsystem/sbin/sqlite3(в зависимости от того, какой из данных файлов будет доступен на вашем сервере).

Полезные материалы

http://forum.ispsystem.ru/showthread.php?29068-%D0%A1%D0%BC%D0%B5%D0%BD%D0%B0-root-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F-MySQL http://forum.ispsystem.ru/showthread.php?26726-ispmanager-5-%D0%B1%D0%B0%D0%B7%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-quot-%D0%9D%D0%B5-%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%BA-%D0%B1%D0%B0%D0%B7%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-quot&p=163340&viewfull=1#post163340 http://forum.ispsystem.ru/showthread.php?26726-ispmanager-5-%D0%B1%D0%B0%D0%B7%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-quot-%D0%9D%D0%B5-%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D0%BA-%D0%B1%D0%B0%D0%B7%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-quot&p=163340&viewfull=1#post163340

https://codeby.net/programmy-dlja-servera/kak-sbrosit-parol-root-mariadb/ https://www.rosehosting.com/blog/how-to-reset-your-mariadb-root-password/

https://servadmin.ru/2016/01/25/%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%B1%D0%B0%D0%B7%D0%BE%D0%B9-ispmanager-5/