Статус: Новичок
Группы: Участники
Зарегистрирован: 19.05.2016(UTC) Сообщений: 2
|
Добрый день Настраиваем nginx (версия 1.10.0) для работы с gost_capi В настройку nginx вставили строку Код:
ssl_engine c:\openssl\lib\engines\gost_capi.dll;
Библиотека лежит в указанной папке и саму настройку ssl Код:
ssl on;
ssl_protocols TLSv1;
ssl_certificate c:\key\mih12.crt;
ssl_certificate_key engine:gost_capi:c:\key\mih12.key;
ssl_client_certificate c:\key\ca.crt;
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
ssl_prefer_server_ciphers on;
ssl_verify_client on;
Однако, при загрузке nginx получаем сообщение об ошибке Код:
nginx: [warn] ENGINE_by_id("c:\openssl\lib\engines\gost_capi.dll") failed (SSL:error:260B606D:engine routines:DYNAMIC_LOAD:init failed error:2606A074:engine routines:ENGINE_by_id:no such engine:id=c:\openssl\lib\engines\gost_capi.dll)
Подскажите, пожалуйста, каким образом корректно подключить данную библиотеку к nginx Операционная система Windows 2008 R2 Server
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,588 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 553 раз в 384 постах
|
Автор: gram4ik1  Настраиваем nginx (версия 1.10.0) для работы с gost_capi В настройку nginx вставили строку Код:
ssl_engine c:\openssl\lib\engines\gost_capi.dll;
Библиотека лежит в указанной папке ... Операционная система Windows 2008 R2 Server Настройка nginx на Windows несколько отличается от Unix систем, так как nginx.exe (официальный) представляет собой объект типа "всё в одном", который содержит в себе вшитый OpenSSL. Раз есть интерес, сейчас напишем инструкцию. |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,588 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 553 раз в 384 постах
|
Настройка nginx + gost_capi на WindowsНам известно, что nginx для Windows с официального сайта имеет вшитый OpenSSL (библиотеки libeay32 и ssleay32 слинкованы статически). Поэтому для работы gost_capi нам понадобится библиотека libeay32.dll соответствующей версии в nginx.exe, для версии nginx 1.10.0 это OpenSSL 1.0.2g. Скачать сборку можно, например, здесь: https://indy.fulgan.com/...sl-1.0.2g-i386-win32.zipДальнейшие шаги предполагают, что nginx настроен в соответствии с FAQ и распакован в C:\nginx\ и сохранена оригинальная структура директорий nginx для Windows:
- Создаём файл C:\nginx\openssl\openssl\ssl\openssl.cnf
Код:openssl_conf = openssl_def
[openssl_def]
engines = engine_section
[engine_section]
gostcapi = gost_section
[gost_section]
engine_id = gost_capi
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
- Копируем gost_capi.dll в C:\nginx\openssl\lib\engines\gost_capi.dll
- Копируем libeay32.dll в C:\nginx\libeay32.dll
- Запускаем C:\nginx\nginx.exe (если используется переменная среды OPENSSL_CONF, очистите её или установите в C:\nginx\openssl\openssl\ssl\openssl.cnf)
p.s. Директиву ssl_engine использовать необязательно, поэтому лучше не использовать. Но если очень хочется, то синтаксис такой: "ssl_engine gost_capi;" p.p.s. Самым правильным способом, конечно, будет научиться собирать nginx + OpenSSL как динамические библиотеки из исходников самостоятельно. Отредактировано пользователем 24 мая 2016 г. 16:49:36(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.05.2016(UTC) Сообщений: 112
|
Тогда следующий вопрос: Как получить сертификат и закрытый ключ (для указания в конфигах nginx)?
При генерации запроса утилитой openssl создаётся файл *.pem - а nginx-у нужен *.key(?)
Я попробовал и успешно сгенерировал тестовый сертификат на тестовом УЦ КриптоПро (https://testca2.cryptopro.ru/UI/1/NewCertificate.aspx) ОС Windows 2008 R2 64x Стандарт Браузер InternetExplorer (усиленная безопасность выключена) Установлен КриптоПро CSP версия продукта 3.9.8227 (ядра СКЗИ 3.9.8001) КС2 При генерации система запрашивала пароль на ключевой носитель. Но куда сохранился закрытый ключ? При попытке установки сертификата через утилиту КриптоПро CSP выходит ошибка:
Не найден контейнер, соответствующий открытому ключу сертификата
Если Internet Explorer запускать не от имени администратора (по правой кнопке) то при попытке создания сертификата (Шаблон "Веб-сервер") выдаётся ошибка: Нужно иметь права администратора для генерации ключа в локальном хранилище компьютера. 0x80090010 - Отказ в разрешении.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,588 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 553 раз в 384 постах
|
|
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.05.2016(UTC) Сообщений: 112
|
Прочитал внимательно FAQ, но не понял - КАК сгенерировать тестовый сертификат на Windows? Пробовал давать команды по аналогии с linux: cryptcp.exe -creatcert -provtype 75 -provname "Crypto-Pro GOST R 34.10-2001 KC1 CSP" -rdn 'CN=testmed.yarcloud.ru' -cont '\\.\HDIMAGE\test_container' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrvCryptCP 3.42 (c) "КРИПТО-ПРО", 2002-2013. Утилита командной строки для подписи и шифрования файлов. Создание запроса... Ошибка: Указан неправильный поставщик. Enroll.cpp:440: 0x80090013 Ошибка: Указан неправильный поставщик. Enroll.cpp:955: 0x80090013 [ErrorCode: 0x80090013] cryptcp.exe -creatcert -provtype 75 -provname "Crypto-Pro GOST R 34.10-2001 KC2 CSP" -rdn 'CN=testmed.yarcloud.ru' -cont '\\.\HDIMAGE\test_container' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrvCryptCP 3.42 (c) "КРИПТО-ПРО", 2002-2013. Утилита командной строки для подписи и шифрования файлов. Создание запроса... Ошибка: Указан неправильный поставщик. Enroll.cpp:440: 0x80090013 Ошибка: Указан неправильный поставщик. Enroll.cpp:955: 0x80090013 [ErrorCode: 0x80090013] cryptcp.exe -creatcert -provtype 75 -rdn 'CN=testmed.yarcloud.ru' -cont '\\.\HDIMAGE\test_container' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrvCryptCP 3.42 (c) "КРИПТО-ПРО", 2002-2013. Утилита командной строки для подписи и шифрования файлов. Создание запроса... Ошибка: Неправильный зарегистрированный набор ключей. Enroll.cpp:440: 0x8009001A Ошибка: Неправильный зарегистрированный набор ключей. Enroll.cpp:955: 0x8009001A [ErrorCode: 0x8009001a]
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,588 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 553 раз в 384 постах
|
Автор: mihmig  КАК сгенерировать тестовый сертификат на Windows? Самый простой способ -- через сайт https://www.cryptopro.ru/certsrv/- выпускаете сертификат "testmed.yarcloud.ru"
- пишете в конфигурации nginx "ssl_certificate_key engine:gost_capi:testmed.yarcloud.ru;"
В целом, ваш подход решить всё с наскока не совсем верный, так как настройка nginx + gost_capi предполагает, что вы уже умеете пользоваться всем арсеналом КриптоПро CSP. Вопросы, как правильно сгенерировать закрытый ключ и выпустить сертификат, лежат в зоне ответственности КриптоПро CSP. Воспринимать gost_capi следует как маленький сервис-прослойку к КриптоПро CSP. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close