SCROLL
Среднее время на прочтение: 2 мин.

Установка OpenSSL GOST Engine на Debian 11 Bullseye

Ранее я уже описывал как добавить поддержку шифрования по ГОСТ Р 34.10-2012 в OpenSSL на Debian 9, недавно возвращался к этому вопросу но уже на системе Debian 11, поэтому решил актуализировать под Debian 11.

 

# Все ниже действия будут производится от root.

 

Устанавливаем необходимые пакеты:

apt-get install g++ gcc make git libssl-dev

 

Поддержу GOST-Engine будем реализовывать для OpenSSL 1.1.1p.

 

Выполняем сборку OpenSSL 1.1.1p, выполняем команды (скачиваем, распаковываем, собираем билд, устанавливаем, настраиваем):

wget https://www.openssl.org/source/openssl-1.1.1p.tar.gz
tar -zxvf openssl-1.1.1p.tar.gz
cd openssl-1.1.1p

./config --prefix=/usr/ssl --openssldir=/usr/ssl
make all
make install

cd .. && rm /usr/bin/openssl
ln -s /usr/ssl/bin/openssl /usr/bin/openssl
echo "/usr/ssl/lib" >> /etc/ld.so.conf.d/ssl.conf
ldconfig

 

Проверяем версию OpenSSL, должно быть так:

openssl version -v
OpenSSL 1.1.1p  21 Jun 2022

 

# Для сборки GOST Engine нужна версия CMake 3.0 и выше.

 

Выполняем сборку CMake актуальной версии:

git clone https://github.com/Kitware/CMake.git CMake
cd CMake

./bootstrap --prefix=/usr
make
make install

 

Проверяем версию CMake, должно быть так:

cmake --version

 

Выполняем сборку GOST Engine, выполняем команды:

git clone https://github.com/gost-engine/engine.git gost-engine
cd gost-engine/

git checkout openssl_1_1_1
mkdir -p /usr/lib/ssl/engines-3

cmake -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=/usr/ssl -DOPENSSL_LIBRARIES=/usr/ssl/lib -DOPENSSL_ENGINES_DIR=/usr/ssl/lib/engines-3
cmake --build . --config Release
cmake --build . --target install --config Release

 

Выполняем настройку OpenSSL для работы с GOST Engine. В файле конфигурации /usr/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/ssl/lib/engines-3/gost.so
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

 

Для проверки готовности OpenSSL к работе с GOST Engine, выполним команды (подсвеченные):

openssl engine

(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gost) Reference implementation of GOST engine
openssl ciphers|tr ':' '\n'|grep GOST

GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89

[stextbox id=’info’]ИНФОРМАЦИЯ. Если вывод такой же как у меня, то значит все собрано и настроено правильно.[/stextbox]

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

4 комментариев
  • отвечаю сам себе. Да, действительно при малом объеме оперативки сборка падает. Надо проверить swap файл.
    Например, так:
    sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile

  • Для проверки установил временно Debian 11 и попробовал пройти по шагам этой инструкции.

    При сбоке CMake (команда ./bootstrap —prefix=/usr) получил сообщение:
    g++ -D_FILE_OFFSET_BITS=64 -DCMAKE_BOOTSTRAP -DCMake_HAVE_CXX_MAKE_UNIQUE=1 -I/root/CMake/Bootstrap.cmk -I/root/CMake/Source -I/root/CMake/Source/LexerParser -I/root/CMake/Utilities/std -I/root/CMake/Utilities -c /root/CMake/Source/cmGeneratorTarget.cxx -o cmGeneratorTarget.o
    g++: fatal error: Killed signal terminated program cc1plus
    compilation terminated.
    gmake: *** [Makefile:208: cmGeneratorTarget.o] Error 1
    ———————————————
    Error when bootstrapping CMake:
    Problem while running gmake
    ———————————————
    Log of errors: /root/CMake/Bootstrap.cmk/cmake_bootstrap.log
    ———————————————

    Может памяти не хватило? Использую для тестирования самый простой VPS с 500 МБ RAM

  • Есть ли подобная инструкция для Debian 12?

    • Это ответ на комментарий Олег

      Нет, возможно если будет время разберу под Debian 12 и напишу статью