ВНИМАНИЕ! Это устаревшая инструкция!
Вместо openssl+gostengy/gost_capi надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx:
https://www.cryptopro.ru...sp/tls/gost-nginx-apache
https://support.cryptopr...-c-podderzhkojj-gost-tls
FAQ (обновлено 14 августа 2018)
Что такое gostengy и gost_capi?gostengy и gost_capi — это библиотеки для OpenSSL, которые обеспечивают поддержку ключей и алгоритмов ГОСТ через вызовы КриптоПро CSP
В терминах OpenSSL, данные библиотеки — это криптографические модули,
ENGINE Какая разница между gostengy и gost_capi?gostengy для OpenSSL >= 1.1.0, поддерживает ГОСТ 2012
gost_capi для OpenSSL от 1.0.0 до 1.0.2, НЕ поддерживает ГОСТ 2012
Какие требования gostengy и gost_capi?Наличие
КриптоПро CSP и
OpenSSLПри использовании в nginx в Linux системах, желательно использовать вариант КС2 (так как nginx использует fork для дочерних процессов).
При использовании антивирусов, убедитесь в поддержке ГОСТ алгоритмов при фильтрации HTTPS или добавьте соответствующие исключения.
Каков процесс развертывания gostengy и gost_capi?Как сконфигурировать OpenSSL?Пример подключения gostengy через конфигурационный файл OpenSSL (обычно вставляется после "oid_section = new_oids"):
Код:openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
gostengy = gost_section
[gost_section]
engine_id = gostengy
dynamic_path = /path/to/dll/or/so/gostengy.dll
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
Пример подключения gost_capi:
Код:openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
gost_capi = gost_section
[gost_section]
engine_id = gost_capi
dynamic_path = /path/to/dll/or/so/gost_capi.dll
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
Как проверить работоспособность OpenSSL с gostengy или gost_capi?Проверить, что ENGINE загружается:
Пример вывода:
Цитата:(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 168568 $)
Проверить возможность подписи (должно выполниться без ошибок):
Код:openssl cms -sign -engine gostengy -keyform ENGINE -inkey www.example.com -in "doc.txt" -out "doc.signed.txt" -outform PEM -CAfile /path/to/cert/www.example.com.cer -nodetach -signer /path/to/cert/www.example.com.cer
Какие операционные системы поддерживает gostengy и gost_capi?На текущий момент поддерживаются x86 и x64 системы семейства Linux и Windows
Для чего может быть использован gostengy и gost_capi?gostengy в составе OpenSSL может быть использован для широкого круга задач, требующих поддержки ключей и алгоритмов ГОСТ, например для реализации защищенных SSL/TLS соединений в HTTP серверах, поддерживающих загрузку ключей из OpenSSL ENGINE, например nginx, и прочие варианты применения OpenSSL.
Какие версии TLS поддерживаются?Для OpenSSL >= 1.1.0 поддерживаются версии TLS до 1.2 (рекомендуем использовать
openssl-1.1.0-gost)
Для OpenSSL от 1.0.0 до 1.0.2 поддерживается TLS 1.0 (при использовании
openssl-1.0.2-gost до TLS 1.2 включительно)
Какие версии nginx поддерживаются?Начиная с
1.7.9 возможно использовать наш криптографический модуль;
Начиная с
1.11.0 возможно использовать одновременную работу ГОСТ и RSA сертификатов.
Как сконфигурировать nginx?Конфигурация nginx для работы с ГОСТ происходит согласно
документации с некоторыми нюансами:
- Пользователь рабочих потоков nginx не должен отличаться от пользователя запускающего nginx (см. user)
- Для сервера должен быть включен ssl
- Сертификат сервера конфигурируется директивой ssl_certificate
- Ключ сертификата конфигурируется директивой ssl_certificate_key, но вместо файла указывается зарезервированное слово "engine:", после которого следует имя OpenSSL ENGINE, в нашем случае это "gostengy" или "gost_capi", далее следует зарезервированный символ ':', за которым следует имя сертификата. Например для сертификата "www.example.com", значение ssl_certificate_key выглядело бы так: "engine:gostengy:www.example.com"
- Остальные директивы могут быть использованы по умолчанию
Таким образом, простейшая конфигурация gostengy в nginx должна содержать:
Код:ssl on;
ssl_certificate /path/to/cert/www.example.com.cer;
ssl_certificate_key engine:gost_capi:www.example.com;
Как сконфигурировать nginx?Как настроить одновременную работу ГОСТ и RSA в nginx?Начиная с версии 1.11.0 в nginx возможно
использовать несколько сертификатов для сервера одновременно.
Для типичной работы ГОСТ TLS в nginx (сначала ГОСТ потом RSA), следует использовать приоритет шифросюит (сначала ГОСТ потом всё остальное), например так:
Код:ssl_ciphers GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89:HIGH;
Можно ли использовать контейнеры без сертификатов в качестве ключей в gostengy?Можно ли использовать gostengy или gost_capi в качестве прокси-сервера в nginx?Как сконфигурировать Apache httpd?К сожалению нам не удалось включить изменения позволяющие работать в официальный репозиторий Apache httpd, конкретно в mod_ssl (историю рассмотрения патча можно посмотреть
здесь).
Однако, вы можете самостоятельно собрать mod_ssl с нашим патчем:
mod_ssl_gost_capi.zip
(2kb) загружен 123 раз(а).Или воспользоваться репозиторием с патчем:
https://github.com/deemru/httpdНастройка по смыслу аналогична
настройке nginx, только вместо ssl_certificate_key в nginx используется SSLCertificateKeyFile в Apache.
Как сконфигурировать Apache httpd по шагам?Какая лицензия используется gostengy и gost_capi?Использование серверных сертификатов требует наличия серверной лицензии у CSP
Как получить gostengy и gost_capi?Отредактировано модератором 27 июля 2021 г. 14:14:56(UTC)
| Причина: обновление FAQ