Установка 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]
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
отвечаю сам себе. Да, действительно при малом объеме оперативки сборка падает. Надо проверить 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 и напишу статью