Содержание

Применимость

Установка и настройка

Сперва удостоверимся, что установлена версия openssl не ниже 1.0.1e-57.res6. Для этого выполним следующую команду:

rpm -aq | grep openssl

если версия отличается - обновим версию библиотеки:

yum update openssl

Убедимся, что после обновления в системе появилась библиотека openssl с поддержкой ГОСТ, например:

find /usr/ -iname "*gost.so"
/usr/lib64/openssl/engines/libgost.so

Активизируем поддержку алгоритма в конфигурационном файле. Так как по умолчанию поддержка ГОСТ отключена:

#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
openssl_conf=openssl_def
[openssl_def]
engines = engine_section

# Engine scetion
[engine_section]
gost = gost_section

# Engine gost section
[gost_section]
engine_id = gost
dynamic_path = /usr/lib64/openssl/engines/libgost.so
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
openssl ciphers|tr ':' '\n'|grep GOST

Ответ системы будет такой:

GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89

Формирование запроса на сертификат с поддержкой алгоритма ГОСТ (пример)

openssl genrsa -out test.example.ru.key 2048
openssl req -new -sha256 -key test.example.ru.key -out test.example.ru.csr
openssl genpkey -algorithm gost2001 -pkeyopt paramset:A -out gost.example.ru.key
openssl req -engine gost -new -key gost.example.ru.key -out gost.example.ru.csr

Для Fresh

В случае с Fresh стоит быть внимательнее с путями:
для 64-х бит:
/usr/lib64/openssl-1.0.2k/engines/libgost.so
для 32-х бит:
/usr/lib/openssl-1.0.2k/engines/libgost.so

остальное без изменений, за исключением работы с пакетным менеджером.