CryptoPro from nginx-gost repository readme

Build Status

Содержание
  1. Nginx-gost
  2. Usage
  3. Scripts
  4. install-nginx
  5. install-certs
  6. CryptoPro / nginx-gost Goto Github PK
  7. nginx-gost’s Introduction
  8. Usage
  9. Scripts
  10. install-nginx
  11. install-certs
  12. Системные требования
  13. Требования к аппаратному обеспечению
  14. Требования к программному обеспечению
  15. Требования к веб-серверу
  16. Требования к веб-серверу для ОС Microsoft Windows 2008 R2
  17. Требования к веб-серверу для ОС Microsoft Windows 2012 и 2012 R2
  18. Требования к веб-серверу для ОС Microsoft Windows 2016/2019
  19. Назначение КриптоПро CSP
  20. Поддерживаемые алгоритмы
  21. Поддерживаемые технологии хранения ключей
  22. Облачный токен
  23. Носители с неизвлекаемыми ключами и защищенным обменом сообщениями
  24. Носители с неизвлекаемыми ключами
  25. Классические пассивные USB-токены и смарт-карты
  26. Инструменты КриптоПро
  27. Поддерживаемое программное обеспечение
  28. Интеграция с платформой КриптоПро
  29. Операционные системы и аппаратные платформы
  30. Интерфейсы для встраивания
  31. Производительность на любой вкус
  32. Регулирующие документы
  33. Nginx-gost’s People
  34. nginx-gost’s Issues
  35. Предусмотреть многократный запуск скриптов
  36. не генируются серты
  37. Recommend Projects
  38. React
  39. Vue
  40. Typescript
  41. TensorFlow
  42. Django
  43. Laravel
  44. Recommend Topics
  45. javascript
  46. web
  47. server
  48. Machine learning
  49. Visualization
  50. Game
  51. Recommend Org
  52. Facebook
  53. Microsoft
  54. Google
  55. Alibaba
  56. Tencent
  57. Jobs
  58. Полезные команды и информация
  59. Создание Docker образа для связки CryptoPro и Nginx
  60. Описание Dockerfile (очевидные вещи опущены)
  61. Описание 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
    Справка по командам.
Читайте также:  Как открыть домофон телефоном с NFC - инструкция Тарифкин.ру - NFC Эксперт

Замечание: если –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”).
nginx-gost

CryptoPro / nginx-gost
Goto Github
PK

View Code? Open in Web Editor

Nginx with GOST TLS

License: MIT License

nginx-gost’s Introduction

Build Status

Скрипты для установки 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”).

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) – Веб-сервер – Разработка приложений».

1.png

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

2.png

  • Фильтрация запросов (Request Filtering);

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

3.png

  • Консоль управления службами IIS (IIS Management Console).

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

4.png

Также необходимо выбрать и установить следующие компоненты IIS: Дополнительные службы .NET
Framework 4.5:

  • Активация по HTTP (HTTP Activation).

5.png

Установить необходимые компоненты можно как через Диспетчер Сервера, так и с помощью командной
строки. Для установки указанных выше компонентов сервера выполните следующую команду:

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.gz
cd ./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_module
make

Копирование базовой конфигурации (пример конфигурации приведён в 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


Offline

ILya D

 

Оставлено
:

1 апреля 2021 г. 20:34:48(UTC)


Offline

two_oceans

 

Оставлено
:

2 апреля 2021 г. 13:02:08(UTC)

Добрый день.
Про актуальность статей подсказать не могу, так как с nginx вплотную не работал. Однако там вроде как чем дальше тем проще все стало, часть того что в теме уже не нужна на новых версиях.

Автор: 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)
 | Причина: Не указана


Offline

Андрей Русев

 

Оставлено
:

27 июля 2021 г. 14:12:21(UTC)

Правильно использовать только актуальную инструкцию: вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx:
https://support.cryptopr…-c-podderzhkojj-gost-tls
Описанная инструкция позволяет устанавливать TLS-соединения одновременно как по ГОСТ TLS, так и по RSA TLS, не навязывая особых требований к браузеру клиента.


Offline

lab2

 

Оставлено
:

5 октября 2021 г. 15:31:04(UTC)

Автор: Андрей Русев Перейти к цитате

вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx:

По текущим лицензиям на серверную CSP,
“обычная” серверная лицензия будет действовать в связке openssl+gostengy, а для решения “КриптоПро CSP 5.0 R2 патч на nginx” необходим новый тип лицензии “Лицензия на право использования СКЗИ “КриптоПро CSP” версии 5.0 для одного TLS-сервера до 1000 одновременных подключений”

все так?


Offline

alex_nur

 

Оставлено
:

5 октября 2021 г. 17:56:56(UTC)

В данный момент используем оба варианта.
От первого варинта (gostengy) будем уходить, т.к. он не может быть сертифицирован в итоге, вдобавок не поддерживается больше. А по второму есть вопросы.
Приобрели лицензию “TLS-сервер на 1000 подключений”. Установил и настроил по инструкции https://support.cryptopr…-c-podderzhkojj-gost-tls
ГОСТ работает по новой настройке там же где и работал при gostengy: IE11, Gost Chromium. Остальные браузеры только через RSA.

Вопрос такой. Установленный таким образом nginx позволяет осуществить подключение максимум TLS1.0. Устанавливал на Astra Linux SE Смоленск. Это проблема в КриптоПро CSP 5 R2 (нужно что-то дополнительно где-то указать?) или в ОС?
Gostengy, по которому вопросов нет, работает TLS1.2 (но там на обычную astra linux установлено).


Offline

lab2

 

Оставлено
:

5 октября 2021 г. 18:26:57(UTC)

Автор: alex_nur Перейти к цитате

В данный момент используем оба варианта.

Как думаете по лицензиям, для gostengy достаточно обычной серверной лицензии? Вот если покупать сейчас для gostengy (несертифицируемый)+КриптоПро CSP 5 R2, с обычной серверной лицензией будет работать?

Интересно и наоборот – лицензия “TLS-сервер на 1000 подключений” будет работать с gostengy ?


Offline

alex_nur

 

Оставлено
:

5 октября 2021 г. 19:34:30(UTC)

Автор: lab2 Перейти к цитате

Как думаете по лицензиям, для gostengy достаточно обычной серверной лицензии? Вот если покупать сейчас для gostengy (несертифицируемый)+КриптоПро CSP 5 R2, с обычной серверной лицензией будет работать?

Было достаточно. Но не исключено, что в будущих версиях CSP не поставят запрет на использование “обычной серверной” лицензии. Возможно, что в R2 уже нельзя (этот вопрос лучше в техподдержку адресуйте), ведь TLS дороже. Думаю что точно вполне реально, что если не на R2, то на какой-нибудь более старой версии CSP точно работать будет.
У меня требование от безопасников, чтобы в дальнейшем проект подлежал сертификации. Я в этом не разбираюсь. Тут на форуме пояснили, что связку с gostengy никогда не удастся сертифицировать. Отсюда и приобретение TLS. Думаю, что безопасники и сами до конца не знают что там действительно нужно по ИБ в плане юридических вопросов. Сам я для себя уяснил, что если нет работы с гос.тайной, а просто используется обработка ПД, то необязательно вообще иметь сертификацию. На сайте ФСБ даже официальный ответ по этому поводу был: главное что защищено ГОСТом. Никто не будет штрафовать за то, что используются несертифицированные средства защиты. Но помимо требований законов РФ есть еще и внутренние ЛПА на предприятии, и вот там может быть ужесточение (хотя вроде никакой ЛПА не должен противоречить и ухудшать правовое положение в сравнении с ФЗ). Если бы мне лично (или моей фирме, в которой я был бы директором) необходим был бы SSL с ГОСТ, я бы использовал просто gostengy. Другое дело, что ничего не стоит на месте, и в будущем потребуется какая-либо фича, которой нет в связке с gostengy, и никто ее не реализует, т.к. эта связка больше не развивается.

Автор: lab2 Перейти к цитате

Интересно и наоборот – лицензия “TLS-сервер на 1000 подключений” будет работать с gostengy ?

Точно будет. Проверено.


Offline

two_oceans

 

Оставлено
:

6 октября 2021 г. 8:06:59(UTC)

Цитата:

Если бы мне лично … необходим был бы SSL с ГОСТ, я бы использовал просто gostengy. Другое дело, что ничего не стоит на месте, и в будущем потребуется какая-либо фича, которой нет в связке с gostengy, и никто ее не реализует, т.к. эта связка больше не развивается.

Соглашусь полностью. Тут есть наверняка есть минимум 2 фактора изменений: 1) для использования TLS openssl (как сам openssl, так и его библиотеки в других продуктах nginx и т.д.) нужно поддерживать в актуальной версии, так как там все время находят уязвимости. Соответственно новая версия openssl может уже оказаться несовместимой с gostengy. Поэтому более перспективно использование gostengy с openssl только в качестве внутреннего УЦ – в этом случае уязвимости TLS значения не имеют и по сертификацию тоже речи не идет, обновлять openssl необходимости нет;
2) поддержка гост-2015 – когда она будет внедряться, определенно gostengy уже не поспеет. End of Line.

Цитата:

Как думаете по лицензиям,

Думаю, что gostengy продолжит работать, так как по сути может использоваться и в клиентском ПО, а поддержки новых алгоритмов там уже ожидать не приходится. Так этот путь будет просто временным отступлением от “генеральной линии партии”.

Более интересно, что теперь еще и stunnel входит в состав сертифицированного СКЗИ. Так Вы можете и на клиентских ос снимать шифрование гост либо перешифровать на rsasha256 и использовать в браузерах без поддержки гост. Зачем какие-то патчи если можно сервер расположить за ним (разве что из-за возможности при патче принимать и гост и не-гост)? Вот с лицензией конечно вопрос – полагаю теперь на stunnel требуется отдельная (которая тут упоминается как вариант 2)?

Отредактировано пользователем 6 октября 2021 г. 8:09:58(UTC)
 | Причина: Не указана


Offline

alex_nur

 

Оставлено
:

6 октября 2021 г. 12:13:01(UTC)

Автор: alex_nur Перейти к цитате

В данный момент используем оба варианта.
Установленный таким образом nginx позволяет осуществить подключение максимум TLS1.0. Устанавливал на Astra Linux SE Смоленск. Это проблема в КриптоПро CSP 5 R2 (нужно что-то дополнительно где-то указать?) или в ОС?
Gostengy, по которому вопросов нет, работает TLS1.2 (но там на обычную astra linux установлено).

Ответила техподдержка, что версии TLS регулируются директивой
sspi_protocols TLSv1 TLSv1.1 TLSv1.2;

Работает, подтверждаю.
В инструкции https://support.cryptopr…-c-podderzhkojj-gost-tls директива sspi_protocols тоже указана, однако там она относится к комментарию:
sspi_certificate 0x00E3CD25AA5310D07F; # RSA cert serial sspi_protocols TLSv1.2;

Для меня из инструкции было неочевидным, что sspi_protocols TLSv1.2 является самостоятельной директивой, т.к. все сливалось в комментарий к директиве sspi_certificate.
Попросил, чтобы в инструкцию внесли изменение.

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


Offline

cps999

 

Оставлено
:

9 июня 2022 г. 16:38:54(UTC)

А где можно получить собственно сам ng-nginx.1.18.0.patch ?

CryptoPro from nginx-gost repository readme

КриптоПро 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.

Поддерживаемые технологии хранения ключей

CryptoPro from nginx-gost repository readme

Облачный токен

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

CryptoPro from nginx-gost repository readme

Носители с неизвлекаемыми ключами и защищенным обменом сообщениями

В КриптоПро CSP 5.0 добавлена поддержка носителей с неизвлекаемыми ключами, реализующих протокол SESPAKE, позволяющий провести аутентификацию, не передавая в отрытом виде пароль пользователя, и установить шифрованный канал для обмена сообщений между криптопровайдером и носителем. Нарушитель, находящийся в канале между носителем и приложением пользователя, не может ни украсть пароль при аутентификации, ни подменить подписываемые данные. При использовании подобных носителей полностью решается проблема безопасной работы с неизвлекаемыми ключами.

Компании Актив, ИнфоКрипт и СмартПарк разработали новые защищенные токены, которые поддерживают данный протокол.

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

CryptoPro from nginx-gost repository readme

Носители с неизвлекаемыми ключами

Многие пользователи хотят иметь возможность работать с неизвлекаемыми ключами, но при этом не обновлять токены до уровня ФКН. Специально для них в провайдер добавлена поддержка популярных ключевых носителей Рутокен ЭЦП 2.0, JaCarta-2 ГОСТ и InfoCrypt VPN-Key-TLS.

Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
Список производителей и моделей носителей с неизвлекаемыми ключами поддерживаемых КриптоПро CSP 5.0 R2
Компания Носитель
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

CryptoPro from nginx-gost repository readme

Классические пассивные USB-токены и смарт-карты

Большинство пользователей предпочитает быстрые, дешевые и удобные решения для хранения ключей. Как правило, предпочтение отдаётся токенам и смарт-картам без криптографических сопроцессоров. Как и в предыдущих версиях провайдера, в КриптоПро CSP 5.0 сохранена поддержка всех совместимых носителей производства компаний Актив, Аладдин Р.Д., Gemalto/SafeNet, Multisoft, NovaCard, Rosan, Alioth, MorphoKST и СмартПарк.

Кроме того, конечно, как и раньше поддерживаются способы хранения ключей в реестре Windows, на жестком диске, на флеш-накопителях на всех платформах.

Список производителей и моделей поддерживаемых КриптоПро CSP 5.0 R2
Список производителей и моделей классических пассивных USB-токенов и смарт-карт поддерживаемых КриптоПро CSP 5.0 R2
Компания Носитель
AliothSCOne Series (v5/v6)
GemaltoOptelio Contactless Dxx Rx
Optelio Dxx FXR3 Java
Optelio G257
Optelio MPH150
ISBCEsmart Token
MorphoKSTMorphoKST
NovaCardCosmo
RosanG&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
SafeNeteToken Java Pro JC
eToken 4100
eToken 5100
eToken 5110
eToken 5105
eToken 5205
АктивРутокен S
Рутокен КП
Рутокен Lite
Смарт-карта Рутокен Lite
Аладдин Р.Д.JaCarta ГОСТ
JaCarta PKI
JaCarta PRO
JaCarta LT
DallasTouch 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.

CryptoPro from nginx-gost repository readme

Поддерживаемое программное обеспечение

КриптоПро 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

CryptoPro from nginx-gost repository readme

Интеграция с платформой КриптоПро

С первого же релиза обеспечивается поддержка и совместимость со всеми нашими продуктами:

  • КриптоПро УЦ
  • Службы УЦ
  • КриптоПро ЭЦП
  • КриптоПро 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

CryptoPro from nginx-gost repository readme

Производительность на любой вкус

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

CryptoPro from nginx-gost repository readme

Регулирующие документы

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

Оцените статью
ЭЦП Эксперт