Настройка библиотеки ГОСТ для OpenSSL в RELS
Материал из Rosalab Wiki
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Содержание
Применимость
- Приведённая ниже инструкция актуальна для Rosa Enterprise Linux Server (RELS) 6.6 и выше. Предложенная библиотека OpenSSL содержит реализацию алгоритма ГОСТ Р 34.10-2001.
- Срок действия алгоритма ГОСТ Р 34.10-2001 истекает в 2018 году. Выписка из информационного письма регулятора приведена тут: https://www.tc26.ru/info/new-national-standards/
- Наличие в ОС реализации алгоритма ГОСТ Р 34.10-2001 не означает автоматического наличия сертификата регулятора на эту реализацию. Проверка контроля встраивания не производилась, сертификат регулятора (ФСБ РФ) на эту реализацию отсутствует. Таким образом, применять эту реализацию можно только в целях осуществления проверок функционирования, либо в соответствии со статьей 1, пункт 2, подпункт 1 152-ФЗ. То есть только для личных нужд, или для тестирования.
Установка и настройка
Сперва удостоверимся, что установлена версия 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
Активизируем поддержку алгоритма в конфигурационном файле. Так как по умолчанию поддержка ГОСТ отключена:
- Редактируем файл /etc/pki/tls/openssl.cnf Вначале файла, прямо первой строкой определим дополнительную секцию openssl_conf=openssl_def, например:
# # 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 корректно опознала добавленный алгоритм ГОСТ. Для этого выполним:
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
остальное без изменений, за исключением работы с пакетным менеджером.