-
Устанавливаем ГОСТ-овское шифрование
sudo apt install libengine-gost-openssl1.1
-
Правим конфиг
sudo nano /etc/ssl/openssl.cnf
-
В начало файла:
openssl_conf = openssl_def
В конец:
[openssl_def] engines = engine_section [engine_section] gost = gost_section [gost_section] engine_id = gost dynamic_path = /usr/lib/x86_64-linux-gnu/engines-1.1/gost.so default_algorithms = ALL CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
Найти местоположение параметра dynamic_path можно с помощью команды
sudo find / -name "gost.so"
Проверить правильность настройки можно командой
openssl ciphers | tr ':' '\n' | grep GOST
В ответ должны получить что-то в виде:
GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89
Именно в вашей версии, так и должно быть. Однако гостовское шифрование не работает на Ubuntu 22.04, всё отлично работает только на версии 20.04. Более того, после этих манипуляций, почему-то php не хочет работать с гостом через функции openssl_*