- Nginx-gost
- Usage
- Scripts
- install-nginx
- install-certs
- CryptoPro / nginx-gost Goto Github PK
- nginx-gost’s Introduction
- Usage
- Scripts
- install-nginx
- install-certs
- Системные требования
- Требования к аппаратному обеспечению
- Требования к программному обеспечению
- Требования к веб-серверу
- Требования к веб-серверу для ОС Microsoft Windows 2008 R2
- Требования к веб-серверу для ОС Microsoft Windows 2012 и 2012 R2
- Требования к веб-серверу для ОС Microsoft Windows 2016/2019
- Назначение КриптоПро CSP
- Поддерживаемые алгоритмы
- Поддерживаемые технологии хранения ключей
- Облачный токен
- Носители с неизвлекаемыми ключами и защищенным обменом сообщениями
- Носители с неизвлекаемыми ключами
- Классические пассивные USB-токены и смарт-карты
- Инструменты КриптоПро
- Поддерживаемое программное обеспечение
- Интеграция с платформой КриптоПро
- Операционные системы и аппаратные платформы
- Интерфейсы для встраивания
- Производительность на любой вкус
- Регулирующие документы
- Nginx-gost’s People
- nginx-gost’s Issues
- Предусмотреть многократный запуск скриптов
- не генируются серты
- Recommend Projects
- React
- Vue
- Typescript
- TensorFlow
- Django
- Laravel
- Recommend Topics
- javascript
- web
- server
- Machine learning
- Visualization
- Game
- Recommend Org
- Microsoft
- Alibaba
- Tencent
- Jobs
- Полезные команды и информация
- Создание Docker образа для связки CryptoPro и Nginx
- Описание Dockerfile (очевидные вещи опущены)
- Описание docker-entrypoint
Nginx-gost
Скрипты для установки nginx с поддержкой GOST и RSA cipher suites (nginx + openssl gostengy + cryptopro csp).
Usage
Самый простой путь для инсталяции nginx:
sudo ./install-nginx.sh --csp=/path_to_csp_dir/or/path_to_csp_tgz/
sudo ./install-certs.sh Scripts
install-nginx
Устанавливает nginx для работы с rsa и gost сертификатами. Если на системе нет каких-либо пакетов (openssl-1.1.0, csp, zlib и пр.), будет произведена их инсталяция.
- –csp=[csp]
Указание архива или директории с пакетами csp. В случае отсутствия установленного csp, этот параметр является обязательным. - –install=[pkg]
Force инсталяция пакета (даже если пакет уже установлен). Поддерживаемые pkg: git, gcc, zlib, pcre, csp, openssl, nginx. - –noinstall=[pkg]
Игнорирование инсталяции пакета (в этом случае, могут возникнуть проблемы при установке nginx). Поддерживаемые pkg: git, gcc, zlib, pcre. - –command_list
Запись в файл command_list.txt списка команд для конкретной системы, которые будут выполнены при установке nginx. - –help
Справка по командам.
Замечание: если –csp не указан, на системе должны быть установлены пакеты csp как kc1, так и kc2. На Ubuntu, например, сделать это можно так:
cd /path_to_csp_dir/
sudo ./install
sudo dpkg -i lsb-cprocsp-kc2-64_4.0.0-5_amd64.deb install-certs
Генерация и установка rsa и gost сертификатов, настройка соответствующей конфигурации nginx. Гостовый сертификат будет установлен в контейнер “ngxtest”.
- –certname=NAME
Выбор имени для сертификатов (по умолчанию “srvtest.pem” для GOST и “srvtestRSA.pem” для RSA). - –container=NAME
Выбор контейнера для GOST сертификата (по умолчанию “ngxtest”).
CryptoPro / nginx-gost
Goto Github
PK
View Code? Open in Web Editor
Nginx with GOST TLS
License: MIT License
nginx-gost’s Introduction
Скрипты для установки nginx с поддержкой GOST и RSA cipher suites (nginx + openssl gostengy + cryptopro csp).
Usage
Самый простой путь для инсталяции nginx:
sudo ./install-nginx.sh --csp=/path_to_csp_dir/or/path_to_csp_tgz/
sudo ./install-certs.shScripts
install-nginx
Устанавливает nginx для работы с rsa и gost сертификатами. Если на системе нет каких-либо пакетов (openssl-1.1.0, csp, zlib и пр.), будет произведена их инсталяция.
- –csp=[csp]
Указание архива или директории с пакетами csp. В случае отсутствия установленного csp, этот параметр является обязательным. - –install=[pkg]
Force инсталяция пакета (даже если пакет уже установлен). Поддерживаемые pkg: git, gcc, zlib, pcre, csp, openssl, nginx. - –noinstall=[pkg]
Игнорирование инсталяции пакета (в этом случае, могут возникнуть проблемы при установке nginx). Поддерживаемые pkg: git, gcc, zlib, pcre. - –command_list
Запись в файл command_list.txt списка команд для конкретной системы, которые будут выполнены при установке nginx. - –help
Справка по командам.
Замечание: если –csp не указан, на системе должны быть установлены пакеты csp как kc1, так и kc2. На Ubuntu, например, сделать это можно так:
cd /path_to_csp_dir/
sudo ./install
sudo dpkg -i lsb-cprocsp-kc2-64_4.0.0-5_amd64.debinstall-certs
Генерация и установка rsa и gost сертификатов, настройка соответствующей конфигурации nginx. Гостовый сертификат будет установлен в контейнер “ngxtest”.
- –certname=NAME
Выбор имени для сертификатов (по умолчанию “srvtest.pem” для GOST и “srvtestRSA.pem” для RSA). - –container=NAME
Выбор контейнера для GOST сертификата (по умолчанию “ngxtest”).
Apache Software Foundation
PostgreSQL Global Development Group
АО ГК «Системы и технологии»
Научно-техническая лаборатория «НЭКСТ ТЕХНИКА»
Новые Облачные Технологии
НПА Вира Реалтайм
НРК – Р.О.С.Т.
ОКБ Аэрокосмические Системы
ООО “Лаборатория МБК”
ООО «Системы документооборота»
Поисковый портал Спутник
РФЯЦ-ВНИИЭФ “НИИИС им Ю.Е.Седакова”
Сетевые информационные системы
УНИВЕРСАЛЬНЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ
Центр открытых разработок
Электронные Офисные Системы
Средство антивирусной защиты
Средство защиты информации
Система предотвращения утечек информации
Системы ip-телефонии и видеоконференции
ПО для работы с оборудованием
Средство обеспечения информационной безопасности
Средство криптографической защиты
Система электронной отчетности
ПО для удаленного администрирования и управления
Средство резервного копирования
Система обучения и контроля знаний
ERP\CRM – система
Средство контроля защищенности
Система обнаружения вторжений
Медицинская информационная система
ПО АСУ ТП
Система управления информацией
Система контроля управления доступом
Дистанционное банковское обслуживание
docker run -d --name crypto-nginx --privileged --security-opt seccomp=unconfined --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 443:443 -t crypto
Получение тестового сертификата для сервера (test.ru заменить на имя сайта). При запросе пароля для криптоконтейнера ввести пустой пароль:
docker -ti crypto-nginx /root/config.sh test.ru
[email protected] /crypto-proxy # docker exec -ti crypto-nginx /root/config.sh navyzet.ruCryptCP 4.0 (c) , 2002-2015. Command prompt Utility file signature and encryption. Creating request... CPCSP: Signing with the use of GOST R 34.10-2001 keys is not allowed from January 1st, 2019. We highly recommend to move to the use of GOST R 34.10-2012 keys advance. Continue with the GOST R 34.10-2001 key generation (o) OK, (c) Cancel o Press keys... [..........................................................................] CryptoPro CSP: Set password on produced container . Password: Retype password: Passwords are not equal Password: Retype password: Sending request to CA... Installing certificate... Certificate is installed. [ReturnCode: 0] Certmgr 1.0 (c) , 2007-2010. program managing certificates, CRLs and stores Install: ============================================================================= 1------- Issuer [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject CN=navyzet.ru Serial 0x12002667752E825729E3CF803A000000266775 SHA1 Hash 0x9e8c54c44ad16152ab55a59275a3dd01ef31143f SubjKeyID 80b4d87101a23e4050fb67a12f6ed72c424969c8 Signature Algorithm ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm ГОСТ Р 34.10-2001 (512 bits) Not valid before 05/03/2018 15:15:32 UTC Not valid after 05/06/2018 15:25:32 UTC PrivateKey Link No CA cert URL http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt OCSP URL http://testca.cryptopro.ru/ocsp/ocsp.srf CDP http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl Extended Key Usage 1.3.6.1.5.5.7.3.1 ============================================================================= [ErrorCode: 0x00000000] Certmgr 1.0 (c) , 2007-2010. program managing certificates, CRLs and stores Exporting: ============================================================================= 1------- Issuer [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject CN=navyzet.ru Serial 0x12002667752E825729E3CF803A000000266775 SHA1 Hash 0x9e8c54c44ad16152ab55a59275a3dd01ef31143f SubjKeyID 80b4d87101a23e4050fb67a12f6ed72c424969c8 Signature Algorithm ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm ГОСТ Р 34.10-2001 (512 bits) Not valid before 05/03/2018 15:15:32 UTC Not valid after 05/06/2018 15:25:32 UTC PrivateKey Link Yes Container HDIMAGEcontaine.000514 Provider Name Crypto-Pro GOST R 34.10-2001 KC2 CSP Provider Info ProvType: 75, KeySpec: 1, Flags: 0x0 CA cert URL http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt OCSP URL http://testca.cryptopro.ru/ocsp/ocsp.srf CDP http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl Extended Key Usage 1.3.6.1.5.5.7.3.1 ============================================================================= Export [ErrorCode: 0x00000000] openssl: /opt/cprocsp/cp-openssl/lib/amd64/libssl.so.1.0.0: no version information available (required by openssl) openssl: /opt/cprocsp/cp-openssl/lib/amd64/libssl.so.1.0.0: no version information available (required by openssl) openssl: /opt/cprocsp/cp-openssl/lib/amd64/libssl.so.1.0.0: no version information available (required by openssl) openssl: /opt/cprocsp/cp-openssl/lib/amd64/libcrypto.so.1.0.0: no version information available (required by openssl) openssl: /opt/cprocsp/cp-openssl/lib/amd64/libcrypto.so.1.0.0: no version information available (required by openssl) openssl: /opt/cprocsp/cp-openssl/lib/amd64/libcrypto.so.1.0.0: no version information available (required by openssl) openssl: /opt/cprocsp/cp-openssl/lib/amd64/libcrypto.so.1.0.0: no version information available (required by openssl) Reloading nginx configuration nginx
В качестве клиента я использовал Chromium с поддержкой алгоритмов ГОСТ.
Решения nginx и Apache HTTP Server (далее — Apache) — два самых широко распространенных веб-сервера с открытым исходным кодом в мире. Каждый из них обладает собственными преимуществами, при этом одной из основных функциональных возможностей обоих серверов является построение защищенного с использованием протокола TLS соединения между клиентом и сервером с обеспечением целостности и конфиденциальности передаваемых данных, в том числе с применением российских криптографических алгоритмов ГОСТ.
Возможность использования TLS с ГОСТ обеспечивается с помощью вызова функций СКЗИ КриптоПро CSP (далее — СКЗИ):
- в nginx — применением к исходным текстам специальных патчей, входящих в состав отдельных версий СКЗИ;
- в Apache — использованием бинарного модуля mod_ssl из состава СКЗИ.
Таким образом, СКЗИ можно эксплуатировать совместно с серверами nginx и Apache определенных версий для реализации TLS с ГОСТ без проведения исследований по оценке влияния указанных серверов на СКЗИ, что делает возможным использование данного решения для обеспечения криптографической защиты передаваемых между клиентом и сервером конфиденциальных данных (в том числе персональных данных) в соответствии с требованиями законодательства РФ по информационной безопасности. При эксплуатации иных версий nginx/Apache или СКЗИ проведение оценки влияния является обязательным во всех случаях, предусмотренных законодательством. Подробнее о работе TLS с ГОСТ можно ознакомиться в нашей статье.
Процесс установки и настройки совместной работы СКЗИ с веб-серверами nginx описан в Руководстве администратора безопасности к соответствующей версии СКЗИ. Необходимые компоненты для работы решения можно скачать в составе СКЗИ. Программное обеспечение nginx и Apache не входит в комплект поставки СКЗИ. Исходные тексты nginx необходимо скачать с официального сайта с последующей проверкой контрольной суммы, а дистрибутив Apache обычно входит в состав ОС.
По сравнению со штатным использованием серверов nginx и Apache, при реализации TLS с ГОСТ на nginx или Apache в качестве криптографического ядра вместо OpenSSL используется СКЗИ КриптоПро CSP и поэтому функциональность решения имеет некоторые особенности:
- Общий кэш при работе в рабочих процессах отсутствует;
- Поддержка директив конфигурации, указанных в файле конфигурации и относящихся к TLS, реализована частично.
Для реализации TLS с ГОСТ на nginx или Apache необходимо приобрести годовую или бессрочную клиентскую лицензию (обязательно при реализации двухстороннего TLS с ГОСТ), специальную бессрочную серверную лицензию с поддержкой TLS и при необходимости сертификаты технической поддержки на указанные лицензии. С полным перечнем необходимых для реализации решения лицензий и сертификатов технической поддержки можно ознакомиться на нашем сайте.
В настоящее время в состав СКЗИ КриптоПро CSP версий 5.0 R2 KC1 (исполнение 1-Base) и 5.0 R2 КС2 (исполнение 2-Base) входят следующие версии компонентов решения для ОС семейства Linux:
- Патч для nginx версии 1.18.0;
- Модуль mod_ssl для Apache версии 2.4.25+ (для ОС Astra Linux SE) и Apache 2.4.41+ (для других ОС семейства Linux).
Отдельно стоит отметить возможность реализации TLS с ГОСТ на веб-сервере Apache Tomcat, используемом для исполнения веб-приложений, написанных на Java. Для решения данной задачи можно использовать криптопровайдер КриптоПро JCP, реализующий SSL и TLS протоколы на базе российских криптографических алгоритмов ГОСТ. При этом, в случае использования КриптоПро JCP 2.0 R4, проведение оценки влияния Apache Tomcat на СКЗИ не потребуется.
В качестве альтернативы предлагаем также рассмотреть более функциональное и производительное решение — TLS-шлюз и VPN КриптоПро NGate, сертифицированный ФСБ России и позволяющий одновременно реализовать TLS с ГОСТ для большого количества веб-серверов, также без необходимости проведения оценки влияния среды функционирования.
Страница для печати
Системные требования
Требования к аппаратному обеспечению
Минимальные требования к аппаратному обеспечению представлены в таблице ниже.
Требования к программному обеспечению
Служба проверки сертификатов и электронной подписи КриптоПро SVS предназначена для
функционирования в следующих операционных системах (ОС):
- Microsoft Windows Server 2008 R2 с установленным пакетом обновления Service Pack 1 и выше,
- Windows Server 2012,
- Windows Server 2012 R2,
- Microsoft Windows Server 2016,
- Microsoft Windows Server 2019,
- операционная система специального назначения «Astra Linux Special Edition» (ОС СН «Astra Linux Special Edition»),
- РЕД ОС.
В качестве криптопровайдера может быть использовано СКЗИ «КриптоПро CSP» версии 4.0 варианта
исполнения 2-Base, 3-Base и выше.
При использовании ОС Microsoft Windows 2008 R2 необходимо наличие установленного Internet Explorer
версии не ниже 9.
Требования к веб-серверу
Требования к веб-серверу для ОС Microsoft Windows 2008 R2
Для настройки работы веб-сервера необходимо установить Microsoft Internet Information Services 7.5. В
Мастере добавления ролей и компонентов необходимо добавить следующие роли веб-сервера IIS:
- ASP.NET;
- Расширяемость .NET (.NET Extensibility 4.5);
- Расширения ISAPI (ISAPI Extensions);
- Фильтры ISAPI (ISAPI Filters);
- Статическое содержимое (Static content);
- Фильтрация запросов (Request Filtering);
- Консоль управления IIS (IIS Management Console).
Примечание
Если установка Microsoft .NET Framework 4.6.1 происходила до установки роли IIS, то после добавления
данной роли необходимо в командной строке выполнить команду (в одну строку):
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe iru
Требования к веб-серверу для ОС Microsoft Windows 2012 и 2012 R2
Для функционирования всех компонентов СЭП «КриптоПро DSS» необходима установка Microsoft Internet
Information Services (IIS) 8. В Мастере добавления ролей и компонентов необходимо добавить следующие
роли веб-сервера IIS:
- ASP.NET 4.5;
- Расширяемость .NET (.NET Extensibility 4.5);
- Расширения ISAPI (ISAPI Extensions);
- Фильтры ISAPI (ISAPI Filters);
Указанные роли находятся в разделе «Веб-сервер (IIS) – Веб-сервер – Разработка приложений».

- Статическое содержимое (Static content);

- Фильтрация запросов (Request Filtering);
Указанная роль находится в разделе «Веб-сервер (IIS) – Веб-сервер – Безопасность».

- Консоль управления службами IIS (IIS Management Console).
Указанная роль находится в разделе «Веб-сервер (IIS) – Средства управления – Консоль управления
службами IIS».

Также необходимо выбрать и установить следующие компоненты IIS: Дополнительные службы .NET
Framework 4.5:
- Активация по HTTP (HTTP Activation).

Установить необходимые компоненты можно как через Диспетчер Сервера, так и с помощью командной
строки. Для установки указанных выше компонентов сервера выполните следующую команду:
dism.exe /Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServer /FeatureName:IIS-ASPNET45 /FeatureName:IIS-NetFxExtensibility45 /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-StaticContent /FeatureName:IIS-ManagementConsole /FeatureName:IIS-RequestFiltering /FeatureName:WAS-WindowsActivationService /FeatureName:WCF-HTTP-Activation45 /FeatureName:IIS-NetFxExtensibility45 /FeatureName:NetFx4Extended-ASPNET45 /FeatureName:WAS-ConfigurationAPIТребования к веб-серверу для ОС Microsoft Windows 2016/2019
Для настройки работы веб-сервера необходимо установить Microsoft Internet Information Services 10. В
Мастере добавления ролей и компонентов необходимо добавить следующее:
- Служба активации процессов Windows:
- Модель процесса;
- API конфигурации;
- Функции .NET Framework 4.6:
- .NET Framework 4.6
- ASP.NET 4.6
- Службы WCF:
- Активация по HTTP
- Платформа .NET 3.5.
- Ведение журнала;
- Расширяемость .NET (.NET Extensibility 4.5);
- Расширения ISAPI (ISAPI Extensions);
- Фильтры ISAPI (ISAPI Filters);
- Статическое содержимое (Static content);
- Фильтрация запросов (Request Filtering);
- Консоль управления IIS (IIS Management Console).
Установить необходимые компоненты можно как через Диспетчер Сервера, так и с помощью командной
строки. Для установки указанных выше компонентов сервера выполните следующую команду:
dism.exe /Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServer /FeatureName:IIS-ASPNET45 /FeatureName:IIS-NetFxExtensibility45 /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-StaticContent /FeatureName:IIS-ManagementConsole /FeatureName:IIS-RequestFiltering /FeatureName:WAS-WindowsActivationService /FeatureName:WCF-HTTP-Activation45 /FeatureName:IIS-NetFxExtensibility45 /FeatureName:NetFx4Extended-ASPNET45 /FeatureName:WAS-ConfigurationAPIКриптоПро SVS при эксплуатации в ОС СН Astra Linux Special Edition поддерживает следующие веб-серверы:
- nginx
- apache
Настройка веб-серверов выполняется согласно эксплуатационной документации к используемой версии КриптоПро CSP
(см. документ “Руководство администратора безопасности. Linux” из соответствующего комплекта документации).
Пример настройки веб-сервера nginx
Установка дополнительных пакетов:
sudo apt-get install build-essential patchПрименение модуля СКЗИ для nginx:
wget https://nginx.org/download/nginx-1.18.0.tar.gz
tar -xvf ./nginx-1.18.0.tar.gz
cp ./ng-nginx.1.18.0.patch ./nginx-1.18.0 && cd ./nginx-1.18.0/
patch -p1 < ./ng-nginx.1.18.0.patchПолучение дополнительных исходных текстов:
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
tar -xvf ./pcre-8.44.tar.gz && cd ./pcre-8.44
wget https://zlib.net/zlib-1.2.11.tar.gz
tar -xvf ./zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
tar -xvf ./openssl-1.1.1h.tar.gzcd ./nginx-1.18.0
./configure \
--user=nginx \
--group=nginx \
--with-cc-opt='-fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Werror=implicit-function-declaration -Winit-self -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie -L/opt/cprocsp/lib/amd64 -lrdrsup -lssp -lcapi10 -lcapi20' \
--prefix=/opt/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--lock-path=/var/run/lock/nginx.lock \
--pid-path=/var/run/nginx.pid \
--with-pcre=/home/test/src/pcre-8.44/ \
--with-pcre-jit \
--with-zlib=/home/test/src/zlib-1.2.11/ \
--with-http_ssl_module \
--with-http_sspi_module \
--with-http_stub_status_module \
--with-openssl=/home/test/src/openssl-1.1.1h/ \
--with-openssl-opt='no-gost no-comp no-dtls no-deprecated no-dynamic-engine no-engine no-hw-padlock no-nextprotoneg no-psk no-tests no-ts no-ui-console' \
--with-stream \
--with-stream_ssl_module \
--with-stream_sspi_module \
--with-http_v2_modulemakeКопирование базовой конфигурации (пример конфигурации приведён в 4.1.2):
sudo cp ./nginx.conf.sample ./nginx-1.18.0/conf/nginx.conf
sudo make installСоздание системного пользователя:
sudo adduser --system --no-create-home --group nginx
sudo chown -R nginx:nginx /var/log/nginx/sudo cp ./nginx.init /etc/init.d/nginx|
ILya D Оставлено | |
|
two_oceans Оставлено | |
Добрый день. Автор: ILya D есть таблица с браузерами, где указаны только: ИЕ, Спутник, Яндекс браузер и Хромиум-гост. Список может пополняться. Заявлено у этих браузеров, ИЕ и Хромиум-гост можно сказать имеют поддержку от разработчиков самого криптопровайдера, а Спутник и Яндекс – чего-то допиливали. Всегда могут появится еще желающие допилить, но Опера и Мозилла пока такого желания не высказывали. Автор: ILya D Правильно я понимаю, чтобы подключиться к серверу который работает по TLS GOST нужен обязательно один из этих браузеров + плагин крипто про + установленный серт УЦ выдавшего сертификаты установленные на сервер? Клиенту нужен браузер, поддерживающий TLS GOST; криптопровайдер (в теории любой с компонентой TLS ГОСТ-2012, самые популярные КриптоПро CSP или Vipnet CSP, на практике – из поддерживаемых браузером); корневой сертификат для цепочки сертификатов сервера (если ГУЦ или Минкомсвязь, то поставится с КриптоПро CSP). Сервер можно настроить на передачу клиенту и сертификата промежуточного УЦ и сертификата самого сервера, то есть сертификат промежуточного УЦ может отсутствовать у клиента и тогда будет прислан сервером. Если же сервер не присылает сертификат промежуточного УЦ, то сертификат промежуточного УЦ должен быть заранее установлен у клиента. Автор: ILya D И смогу ли я подключиться к серверу из других браузеров например из хрома, оперы или файр фокс используя шифрование TLS GOST? Из самого браузера, используя шифрование TLS GOST – нет, но можно приукрасить, разрешить без гост или вставить прослойку между браузером и nginx у клиента. Отредактировано пользователем 2 апреля 2021 г. 13:08:00(UTC) | |
|
Андрей Русев Оставлено | |
Правильно использовать только актуальную инструкцию: вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx: | |
|
lab2 Оставлено | |
Автор: Андрей Русев вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx: По текущим лицензиям на серверную CSP, все так? | |
|
alex_nur Оставлено | |
В данный момент используем оба варианта. Вопрос такой. Установленный таким образом nginx позволяет осуществить подключение максимум TLS1.0. Устанавливал на Astra Linux SE Смоленск. Это проблема в КриптоПро CSP 5 R2 (нужно что-то дополнительно где-то указать?) или в ОС? | |
|
lab2 Оставлено | |
Автор: alex_nur В данный момент используем оба варианта. Как думаете по лицензиям, для gostengy достаточно обычной серверной лицензии? Вот если покупать сейчас для gostengy (несертифицируемый)+КриптоПро CSP 5 R2, с обычной серверной лицензией будет работать? Интересно и наоборот – лицензия “TLS-сервер на 1000 подключений” будет работать с gostengy ? | |
|
alex_nur Оставлено | |
Автор: lab2 Как думаете по лицензиям, для gostengy достаточно обычной серверной лицензии? Вот если покупать сейчас для gostengy (несертифицируемый)+КриптоПро CSP 5 R2, с обычной серверной лицензией будет работать? Было достаточно. Но не исключено, что в будущих версиях CSP не поставят запрет на использование “обычной серверной” лицензии. Возможно, что в R2 уже нельзя (этот вопрос лучше в техподдержку адресуйте), ведь TLS дороже. Думаю что точно вполне реально, что если не на R2, то на какой-нибудь более старой версии CSP точно работать будет. Автор: lab2 Интересно и наоборот – лицензия “TLS-сервер на 1000 подключений” будет работать с gostengy ? Точно будет. Проверено. | |
|
two_oceans Оставлено | |
Цитата: Если бы мне лично … необходим был бы SSL с ГОСТ, я бы использовал просто gostengy. Другое дело, что ничего не стоит на месте, и в будущем потребуется какая-либо фича, которой нет в связке с gostengy, и никто ее не реализует, т.к. эта связка больше не развивается. Соглашусь полностью. Тут есть наверняка есть минимум 2 фактора изменений: 1) для использования TLS openssl (как сам openssl, так и его библиотеки в других продуктах nginx и т.д.) нужно поддерживать в актуальной версии, так как там все время находят уязвимости. Соответственно новая версия openssl может уже оказаться несовместимой с gostengy. Поэтому более перспективно использование gostengy с openssl только в качестве внутреннего УЦ – в этом случае уязвимости TLS значения не имеют и по сертификацию тоже речи не идет, обновлять openssl необходимости нет; Цитата: Как думаете по лицензиям, Думаю, что gostengy продолжит работать, так как по сути может использоваться и в клиентском ПО, а поддержки новых алгоритмов там уже ожидать не приходится. Так этот путь будет просто временным отступлением от “генеральной линии партии”. Более интересно, что теперь еще и stunnel входит в состав сертифицированного СКЗИ. Так Вы можете и на клиентских ос снимать шифрование гост либо перешифровать на rsasha256 и использовать в браузерах без поддержки гост. Зачем какие-то патчи если можно сервер расположить за ним (разве что из-за возможности при патче принимать и гост и не-гост)? Вот с лицензией конечно вопрос – полагаю теперь на stunnel требуется отдельная (которая тут упоминается как вариант 2)? Отредактировано пользователем 6 октября 2021 г. 8:09:58(UTC) | |
|
alex_nur Оставлено | |
Автор: alex_nur В данный момент используем оба варианта. Ответила техподдержка, что версии TLS регулируются директивой Работает, подтверждаю. Для меня из инструкции было неочевидным, что sspi_protocols TLSv1.2 является самостоятельной директивой, т.к. все сливалось в комментарий к директиве sspi_certificate. | |
| |
|
cps999 Оставлено | |
А где можно получить собственно сам ng-nginx.1.18.0.patch ? | |

КриптоПро CSP 5.0 — новое поколение криптопровайдера, развивающее три основные продуктовые линейки компании КриптоПро: КриптоПро CSP (классические токены и другие пассивные хранилища секретных ключей), КриптоПро ФКН CSP/Рутокен CSP (неизвлекаемыe ключи на токенах с защищенным обменом сообщениями) и КриптоПро DSS (ключи в облаке).
Все преимущества продуктов этих линеек не только сохраняются, но и приумножаются в КриптоПро CSP 5.0: шире список поддерживаемых платформ и алгоритмов, выше быстродействие, удобнее пользовательский интерфейс. Но главное — работа со всеми ключевыми носителями, включая ключи в облаке, теперь единообразна. Для перевода прикладной системы, в которой работал КриптоПро CSP любой из версий, на поддержку ключей в облаке или на новые носители с неизвлекаемыми ключами, не потребуется какая-либо переработка ПО — интерфейс доступа остаётся единым, и работа с ключом в облаке будет происходить точно таким же образом, как и с классическим ключевым носителем.
Скачать КриптоПро CSP
с ознакомительной полнофункциональной 90-дневной лицензией
Назначение КриптоПро CSP
- Формирование и проверка электронной подписи.
- Обеспечение конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты.
- Обеспечение аутентичности, конфиденциальности и имитозащиты соединений по протоколам TLS, и IPsec.
- Контроль целостности системного и прикладного программного обеспечения для его защиты от несанкционированных изменений и нарушений доверенного функционирования.
Поддерживаемые алгоритмы
В КриптоПро CSP 5.0 наряду с российскими реализованы зарубежные криптографические алгоритмы. Теперь пользователи имеют возможность использовать привычные носители ключей для хранения секретных ключей RSA и ECDSA.
Электронная подпись | ГОСТ Р 34.10-2012 (ГОСТ 34.10-2018), ECDSA, RSA |
Хэш-функции | ГОСТ Р 34.11-2012 (ГОСТ 34.11-2018), SHA-1, SHA-2 |
Шифрование | ГОСТ Р 34.12-2015 (ГОСТ 34.12-2018), ГОСТ Р 34.13-2015 (ГОСТ 34.13-2018), ГОСТ 28147-89, AES (128/192/256), 3DES, 3DES-112, DES, RC2, RC4 |
Таблица алгоритмов, поддерживаемых разными версиями КриптоПро CSP.
Поддерживаемые технологии хранения ключей

Облачный токен
В криптопровайдере КриптоПро CSP 5.0 впервые появилась возможность использования ключей, хранящихся на облачном сервисе КриптоПро DSS, через интерфейс CryptoAPI. Теперь ключи, хранимые в облаке, могут быть легко использованы как любыми пользовательскими приложениями, так и большинством приложений компании Microsoft.

Носители с неизвлекаемыми ключами и защищенным обменом сообщениями
В КриптоПро CSP 5.0 добавлена поддержка носителей с неизвлекаемыми ключами, реализующих протокол SESPAKE, позволяющий провести аутентификацию, не передавая в отрытом виде пароль пользователя, и установить шифрованный канал для обмена сообщений между криптопровайдером и носителем. Нарушитель, находящийся в канале между носителем и приложением пользователя, не может ни украсть пароль при аутентификации, ни подменить подписываемые данные. При использовании подобных носителей полностью решается проблема безопасной работы с неизвлекаемыми ключами.
Компании Актив, ИнфоКрипт и СмартПарк разработали новые защищенные токены, которые поддерживают данный протокол.
| Компания | Носитель |
|---|---|
| Актив | Рутокен ЭЦП 2.0 3000 (USB, Type-C, micro) |
| Смарт-карта Рутокен ЭЦП 3.0 | |
| Инфокрипт | InfoCrypt Token++ |
| СмартПарк | Форос 2. Базис |

Носители с неизвлекаемыми ключами
Многие пользователи хотят иметь возможность работать с неизвлекаемыми ключами, но при этом не обновлять токены до уровня ФКН. Специально для них в провайдер добавлена поддержка популярных ключевых носителей Рутокен ЭЦП 2.0, JaCarta-2 ГОСТ и InfoCrypt VPN-Key-TLS.
| Компания | Носитель |
|---|---|
| ISBC | Esmart Token ГОСТ |
| Актив | Рутокен PINPad |
| Рутокен ЭЦП (USB, micro, Flash) | |
| Рутокен ЭЦП 2.0 (USB, micro, Flash, Touch) | |
| Рутокен ЭЦП 2.0 2100 (USB, Type-C, micro) | |
| Рутокен ЭЦП 2.0 2151 | |
| Рутокен ЭЦП PKI (USB, Type-C, micro) | |
| Рутокен ЭЦП 2.0 Bluetooth | |
| Рутокен TLS (исполнение 1) | |
| Смарт-карта Рутокен ЭЦП SC | |
| Смарт-карта Рутокен ЭЦП 2.0 2100 | |
| Смарт-карта Рутокен ЭЦП 2.0 2151 | |
| Аладдин Р.Д. | JaCarta-2 ГОСТ, JaСarta SF/ГОСТ |
| JaCarta-2 SE/PKI/ГОСТ | |
| Инфокрипт | InfoCrypt Token++ TLS |
| InfoCrypt VPN-Key-TLS |

Классические пассивные USB-токены и смарт-карты
Большинство пользователей предпочитает быстрые, дешевые и удобные решения для хранения ключей. Как правило, предпочтение отдаётся токенам и смарт-картам без криптографических сопроцессоров. Как и в предыдущих версиях провайдера, в КриптоПро CSP 5.0 сохранена поддержка всех совместимых носителей производства компаний Актив, Аладдин Р.Д., Gemalto/SafeNet, Multisoft, NovaCard, Rosan, Alioth, MorphoKST и СмартПарк.
Кроме того, конечно, как и раньше поддерживаются способы хранения ключей в реестре Windows, на жестком диске, на флеш-накопителях на всех платформах.
| Компания | Носитель |
|---|---|
| Alioth | SCOne Series (v5/v6) |
| Gemalto | Optelio Contactless Dxx Rx |
| Optelio Dxx FXR3 Java | |
| Optelio G257 | |
| Optelio MPH150 | |
| ISBC | Esmart Token |
| MorphoKST | MorphoKST |
| NovaCard | Cosmo |
| Rosan | G&D element V14 / V15 |
| G&D 3.45 / 4.42 / 4.44 / 4.45 / 4.65 / 4.80 | |
| Kona 2200s / 251 / 151s / 261 / 2320 | |
| Kona2 S2120s / C2304 / D1080 | |
| SafeNet | eToken Java Pro JC |
| eToken 4100 | |
| eToken 5100 | |
| eToken 5110 | |
| eToken 5105 | |
| eToken 5205 | |
| Актив | Рутокен S |
| Рутокен КП | |
| Рутокен Lite | |
| Смарт-карта Рутокен Lite | |
| Аладдин Р.Д. | JaCarta ГОСТ |
| JaCarta PKI | |
| JaCarta PRO | |
| JaCarta LT | |
| Dallas | Touch Memory (iButton) DS199x |
| Инфокрипт | InfoCrypt Token++ lite |
| Мультисофт | MS_Key исп.8 Ангара |
| MS_Key ESMART исп.5 | |
| СмартПарк | Форос |
| Форос 2 | |
| R301 Форос | |
| Оскар | |
| Оскар 2 | |
| Рутокен Магистра |
Инструменты КриптоПро
В составе КриптоПро CSP 5.0 появилось кроссплатформенное (Windows/Linux/macOS) графическое приложение — «Инструменты КриптоПро» («CryptoPro Tools»).
Основная идея — предоставить возможность пользователям удобно решать типичные задачи. Все основные функции доступны в простом интерфейсе — при этом мы реализовали и режим для опытных пользователей, открывающий дополнительные возможности.
С помощью Инструментов КриптоПро решаются задачи управления контейнерами, смарт-картами и настройками криптопровайдеров, а также мы добавили возможность создания и проверки электронной подписи PKCS#7.

Поддерживаемое программное обеспечение
КриптоПро CSP позволяет быстро и безопасно использовать российские криптографические алгоритмы в следующих стандартных приложениях:
- Офисный пакет Microsoft Office
- Почтовый сервер Microsoft Exchange и клиент Microsoft Outlook
- Продукты Adobe
- Браузеры Яндекс.Браузер, Спутник, Internet Explorer, Chromium GOST
- Средство формирования и проверки подписи приложений Microsoft Authenticode
- Веб-серверы Microsoft IIS, nginx, Apache
- Средства удаленных рабочих столов Microsoft Remote Desktop Services
- Microsoft Active Directory

Интеграция с платформой КриптоПро
С первого же релиза обеспечивается поддержка и совместимость со всеми нашими продуктами:
- КриптоПро УЦ
- Службы УЦ
- КриптоПро ЭЦП
- КриптоПро IPsec
- КриптоПро EFS
- КриптоПро .NET
- КриптоПро Java CSP
- КриптоПро NGate
Операционные системы и аппаратные платформы
Традиционно мы работаем в непревзойдённо широком спектре систем:
- Microsoft Windows
- macOS
- Linux
- FreeBSD
- Solaris
- AIX
- iOS
- Android
- Sailfish OS
- Аврора
аппаратных платформ:
- Intel, AMD
- PowerPC
- ARM (в т.ч. Байкал-М, Apple M1)
- MIPS (Байкал-Т)
- VLIW (Эльбрус)
- Sparc
и виртуальных сред:
- Microsoft Hyper-V
- VMWare
- Oracle Virtual Box
- RHEV
Таблица операционных систем, поддерживаемых разными версиями КриптоПро CSP.
Классификация операционных систем для использования КриптоПро CSP c лицензией на рабочее место и сервер.
Интерфейсы для встраивания
Для встраивания в приложения на всех платформах КриптоПро CSP доступен через стандартные интерфейсы для криптографических средств:
- Microsoft CryptoAPI
- PKCS#11
- OpenSSL engine
- Java CSP (Java Cryptography Architecture)
- Qt SSL

Производительность на любой вкус
Многолетний опыт разработки позволяет нам охватить все решения от миниатюрных ARM-плат, таких как Raspberry PI, до многопроцессорных серверов на базе Intel Xeon, AMD EPYC и PowerPC, отлично масштабируя производительность.

Регулирующие документы
Nginx-gost’s People
nginx-gost’s Issues
Предусмотреть многократный запуск скриптов
Также при указании файла с CSP, скачанного wget (например ./install-nginx.sh linux-amd64_deb.tgz.1) происходит ошибка: ./install-nginx.sh: line 165: cd: linux-amd64_deb.tgz.1: Not a directory
Предлагается либо перезаписывать контейнер, либо менять имя по аналогии с wget, дописывая .1, .2 и т.д к имени контейнера и далее везде. В любом случае, при подобной ошибке не следует продолжать, так как она теряется и как будто всё хорошо.
Также предлагается добавить аргумент к ./install-certs.sh с возможностью указания своего имени, вместо srvtest по умолчанию, и, соответственно, везде будет новое имя, включая RSA часть.
не генируются серты
The requested certificate does not exist.
+ '[' 1 -eq 0 ']'
+ /opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMCONTAINERS
+ grep ngxtest 847 ngxtest
+ '[' 0 -eq 0 ']'
+ /opt/cprocsp/bin/amd64/csptest -keyset -deletekeyset -provtype 81 -container ngxtest
CSP (Type:81) v5.0.10006 KC2 Release Ver:5.0.11823 OS:Linux CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
Container ngxtest deleted.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 0.010 sec
[ErrorCode: 0x00000000]
+ '[' 0 -eq 1 ']'
+ /opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP' -rdn CN=srvtest -cont '\\.\HDIMAGE\ngxtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://testgost2012.cryptopro.ru/certsrv
CryptCP 5.0 (c) "Crypto-Pro", 2002-2020.
Command prompt Utility for file signature and encryption.
Creating request...
Press keys...
[....................................................................................................................................................]
Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP requests new authentication properties for container
New password:
Confirm password:
Sending request to CA...
CURL is unavailable!
Error: Error loading type library/DLL.
/dailybuildsbranches/CSP_5_0r2i/CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:1144: 0x80029C4A
[ErrorCode: 0x80029c4a]
+ exit 1при этом curl/wget в системе есть. есть мысли куда копать?
Recommend Projects
React
Vue
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
TensorFlow
An Open Source Machine Learning Framework for Everyone
Django
The Web framework for perfectionists with deadlines.
Laravel
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
web
Some thing interesting about web. New door for the world.
server
A server is a program made to process requests and deliver data to clients.
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Visualization
Some thing interesting about visualization, use data art
Game
Some thing interesting about game, make everyone happy.
Recommend Org
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
Microsoft
Open source projects and samples from Microsoft.
Google
Google ❤️ Open Source for everyone.
Alibaba
Alibaba Open Source for everyone
Data-Driven Documents codes.
Tencent
China tencent open source team.
Jobs
Jooble
Полезные команды и информация
Запуск контейнера осуществляется командой:
docker run –rm -p 443:443 -p 80:80 –name cprocsp6 –privileged –security-opt seccomp=unconfined –tmpfs /run –tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro -d crypto
Экспрот сертификата из контейнера в формате X509/DER (лучше использовать этот формат, так как при экспорте с опцией -base64 в файле сертификата будут отсутствовать строчки —–BEGIN CERTIFICATE—– и —–END CERTIFICATE—–)
/opt/cprocsp/bin/amd64/certmgr -export -store uMy -dest /tmp/nginx.cerПроверить наличие установленных сертификатов в системе (в поле Provider Name должно быть Crypto-Pro GOST R 34.10-2001 KC2 CSP):
/opt/cprocsp/bin/amd64/certmgr -list -store uMy- Работа с выгруженным контейнером формата pfx в Linux-like системах не поддерживается!
Описание файла конфигурации виртуального хоста:
ssl_certificate /etc/nginx/nginx.pem; наш ГОСТовский сертификат ssl_certificate_key engine:gost_capi:node.sdsys.ru; наш ГОСТовский ключ ssl_certificate /etc/nginx/sdsys.crt; ssl_certificate_key /etc/nginx/sdsys.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1; ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUM; описание Ciphers ssl_prefer_server_ciphers on;
В описании location необходимо добавить proxy_set_header X-SSL-Cipher $ssl_cipher;
Используемая литература:
Форум CryptoPro
Другие источники
Создание Docker образа для связки CryptoPro и Nginx
Далее по тексту мы используем следующие оговорки:
- Docker образ на основе Centos 6.X
- CryptoPro 4 R2 for linux
- Nginx последняя сборка (на момент написания статьи 1.12.2-1.el6)
- У нас выпущены валидные ключи и сертификаты для доменного имени или сгенерированы с помощью тестового УЦ CryptoPro
- Сертификаты будут устанавливаться в контейеры с типом провайдера КС2, так как nginx работает только с этим типом
Описание Dockerfile (очевидные вещи опущены)
- Копируем специально подготовленный конфигурационный файл openssl в Docker-образ (см. форум CryptoPro)
- Инсталируем необходимое ПО redhat-lsb-core libcurl
- Копируем контейнер (по усмолчанию контейнеры CryptoPro размещаются по пути
/var/opt/cprocsp/keys/..., где...имя пользователя, от которого создавался контейнер. В нашем случае root. Меняем владельца папки) - Копируем сертификат (местоназначения скопированного сертификата не имеет значения, но если использовать большую вложенность пути, импорт завершится с ошибкой)
- Копируем файл конфигурации виртуального хоста test.conf
Описание docker-entrypoint
Запускаем сервис CryptoPro:
Указываем CryptoPro где находится библиотека Curl:
/opt/cprocsp/sbin/amd64/cpconfig -ini \\config\\apppath -add string libcurl.so /usr/lib64/libcurl.so
Если переносимый контейнер имеет пароль, то его надо сбросить:
/opt/cprocsp/bin/amd64/csptest -passwd -container ‘\\.\HDIMAGE\test_container’ -change ” -passwd ‘old_password’
Устанавливаем сертификат в контейнер с типом провайдера КС1 (обратите внимание, что имя контейнера идет без порядкового номера, используемого в dockerfile test.000):
/opt/cprocsp/bin/amd64/certmgr -inst -file /tmp/nginx.cer -cont ‘\\.\HDIMAGE\test’
Устанавливаем ПО необходимое для работы с контейнерами типа КС2 (Важно чтобы данный пакет был инсталирован после установки сертификата, но перед линковокой установленного сертификата с контейнером типа КС2):
yum install -y /tmp/lsb-cprocsp-kc2-64-4.0.0-4.x86_64.rpm
Линкуем установленный сертификат с контейнером КС2:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont ‘\\.\HDIMAGE\test’ -provtype 75 -provname “Crypto-Pro GOST R 34.10-2001 KC2 CSP”
Перековертируем сертификат из формата X509/DER в X.509/PEM:
/opt/cprocsp/cp-openssl/bin/amd64/openssl x509 -inform der -in /tmp/nginx.cer -out /etc/nginx/nginx.pem
Редактируем nginx.conf. Необходимо изменить пользователя, от которого будет запускать nginx. Пользователь должен быть тем, от которого создавался/размещался контейнер с ключами. В нашем случае root

1 пользователь поблагодарил alex_nur за этот пост.




