Skip to content

Instantly share code, notes, and snippets.

@nook-ru
Forked from beglov/gost_engine.sh
Last active August 12, 2024 13:05
Show Gist options
  • Save nook-ru/e697d4748085ab6d2a76b2ac037a76c0 to your computer and use it in GitHub Desktop.
Save nook-ru/e697d4748085ab6d2a76b2ac037a76c0 to your computer and use it in GitHub Desktop.
Настройка ГОСТ OpenSSL под Ubuntu 20.04 (18.04)
  1. Устанавливаем ГОСТ-овское шифрование sudo apt install libengine-gost-openssl1.1

  2. Правим конфиг sudo nano /etc/ssl/openssl.cnf

  3. В начало файла:

    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

@airatbakiev
Copy link

Добрый день. После выполнения первых двух шагов, не появляется файл gost.so. Поиск не дал результатов.

Ubuntu 22.04.1 LTS
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

@nook-ru
Copy link
Author

nook-ru commented Dec 14, 2022

@airatbakiev, попробуйте dpkg -L libengine-gost-openssl1.1, у меня на 22.04 он почему-то в корень установился — /gost.so 😕

@songflows
Copy link

@nook-ru добрый день. OpenSSL >=3.0.+ поддерживается? Дружит с либой libengine-gost-openssl1.1 версии openssl 1.1.*?
В списке dpkg -L возвращается /usr/lib/x86_64-linux-gnu/engines-1.1/gost.so, openssl.cnf модифицирован, но GOST алгоритмы не появляются в списке openssl ciphers. Help please

@c7v
Copy link

c7v commented May 18, 2023

@airatbakiev, попробуйте dpkg -L libengine-gost-openssl1.1, у меня на 22.04 он почему-то в корень установился — /gost.so 😕

Именно в вашей версии, так и должно быть. Однако гостовское шифрование не работает на Ubuntu 22.04, всё отлично работает только на версии 20.04. Более того, после этих манипуляций, почему-то php не хочет работать с гостом через функции openssl_*

@prog-bob
Copy link

@nook-ru, Огромное человеческое спасибо!

@MuhahaSam
Copy link

лично меня помогло, то что я закоментил строку
openssl_conf = default_conf

@SaintSample
Copy link

@songflows Поищи конфиги. Там может быть дефолгтный конфиг который валяется в /usr/local/share/...
find / -name openssl.cnf может помочь

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment