Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

11 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline ElenaS  
#1 Оставлено : 25 марта 2015 г. 18:01:05(UTC)
Елена Серебренникова

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.04.2014(UTC)
Сообщений: 31
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
ВНИМАНИЕ! Это устаревшая инструкция!
Вместо openssl+gostengy надо использовать легализованный в КриптоПро CSP 5.0 R2 патч на nginx:
https://www.cryptopro.ru...sp/tls/gost-nginx-apache
https://support.cryptopr...-c-podderzhkojj-gost-tls


Старая инструкция
UPD2: Есть крутая тема с настройкой nginx на Ubuntu, Debian, CentOS, Red Hat с помощью bash-скрипта, его можно выполнить сразу или сформировать набор команд

UPD: ВНИМАНИЕ: стабильная ветка nginx с нашим патчем "одновременной работы" доступна на GitHub: https://github.com/deemru/nginx

По результатам обсуждений и тестирования возникла вот такая облегченная инструкция:

Требования к устанавливаемому ПО

Для корректной работы HTTPS с использованием сервера nginx необходима установка и настройка ПО в соответствии с нижеперечисленными пунктами:
  • LSB
  • curl (либо только библиотеки libcurl)
  • КриптоПро CSP в реализации KC2
  • gost_capi
  • OpenSSL версии не менее 1.0.1f (поддерживаем TLS только версии 1.0)
  • nginx версии не менее 1.7.9

Все действия производятся от имени пользователя root.
UPD. В настройке антивируса Avast на клиенте может потребоваться отключение проверки HTTPS


Установка КриптоПро CSP

Установка производится в соответствии с Руководством администратора безопасности Linux (крайне рекомендуется к прочтению).
Обязательные пакеты:
  • lsb-cprocsp-base
  • lsb-cprocsp-rdr
  • lsb-cprocsp-capilite
  • lsb-cprocsp-kc1
  • lsb-cprocsp-kc2

Пример для Ubuntu 64 bit (именно в таком порядке):
Код:
alien -kci lsb-cprocsp-base-4.0.0-4.noarch.rpm lsb-cprocsp-rdr-64-4.0.0-4.x86_64.rpm lsb-cprocsp-capilite-64-4.0.0-4.x86_64.rpm lsb-cprocsp-kc1-64-4.0.0-4.x86_64.rpm lsb-cprocsp-kc2-64-4.0.0-4.x86_64.rpm cprocsp-curl-64-4.0.0-4.x86_64.rpm


С помощью утилиты cpconfig (входит в состав дистрибутива) указать для CSP путь к libcurl (путь к cpconfig и к libcurl.so зависит от архитектуры системы)
Код:
cpconfig -ini \\config\\apppath -add string libcurl.so /usr/local/lib/64/libcurl.so


Установка сертификата

Сертификат сервера для создания сертифицированного решения приобретается у организации, предоставляющей услуги УЦ.
Например, если УЦ выдал контейнер с закрытым ключом и сертификатом на носителе USB-flash, тонужно установить сертификат из контейнера командой
Код:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\ FLASH \your_container_name' -provtype 75 


Для тестов закрытый ключ с сертификатом можно получить в тестовом Центре сертификации www.cryptopro.ru/certsrv
Внимание: KC1 в имени провайдера:
Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 75 -provname "Crypto-Pro GOST R 34.10-2001 KC1 CSP" -rdn 'CN=www.aaa.ru' -cont '\\.\HDIMAGE\test_container' -certusage 1.3.6.1.5.5.7.3.1  -ku -du -ex -ca http://cryptopro.ru/certsrv


ngnix может работать только с провайдером KC2, поэтому надо привязать только что выпущенный сертификат именно к нему, для этого установим сертификат из контейнера, явно указав KC2-провайдер:
Код:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\test_container' -provtype 75 -provname "Crypto-Pro GOST R 34.10-2001 KC2 CSP" 


Проверяем что есть связка ключа с сертификатом
Код:
certmgr -list -store uMy


Установка и настройка gost_capi

gost_capi – библиотека openssl, обеспечивающая поддержку ключей и алгоритмов ГОСТ.
Дистрибутив можно взять на форуме Крипто Про (для скачивания нужна регистрация) http://www.cryptopro.ru/...ts&m=55563#post55563
Документацию по установке и настройке можно скачать с сайта http://www.cryptopro.ru/...te/csp/36R3/7491/doc.zip
Пример команды по установке gost_capi:
Код:
alien -kci cprocsp-cpopenssl-gost-64-4.0.0-4.x86_64.rpm 

если в процессе установки будет затребован cpopenssl, игнорировать.


Настройка OpenSSL

Настройка openssl производится путём внесения в конфигурационный файл openssl.cnf следующих параметров после old_section = new_oids и комментариев:
Код:
openssl_conf = openssl_def

[openssl_def]
engines = engine_section

[engine_section]
gost_capi = gost_section

[gost_section]
engine_id = gost_capi
dynamic_path = /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1

Путь к libgost_capi.so нужно проверить и указать точно.
Далее необходимо проверить, что OpenSSL использует gost_capi командой:
Код:
openssl engine

Вывод команды может выглядеть следующим образом:
Код:
(rsax) RSAX engine support
(dynamic) Dynamic engine loading support
(gost_capi) CryptoPro ENGINE GOST CAPI ($Revision: 116890 $)


Настройка nginx

Пользователь рабочих потоков nginx не должен отличаться от пользователя запускающего nginx (http://nginx.org/ru/docs/ngx_core_module.html#user). Для этого в конфигурационном файле etc/nginx/nginx.conf укажите:
Код:
user = <имя пользователя>

Для пользователя должен быть включен SSL http://nginx.org/ru/docs...http_ssl_module.html#ssl
При этом нужно проконтролировать наличие поддержки TLSv1
Вместо включенной ссылки на конфигурационный файл настройки SSL в самом конце файла рекомендуется записать настройку SSL, которую можно взять из /etc/nginx/conf.d/example_ssl.conf и указать следующие параметры:
Код:
# HTTPS server
server {
    listen      443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/nginx/cert.cer; 
    ssl_certificate_key  engine:gost_capi:test.ru; 
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_protocols               TLSv1;
    ssl_ciphers  HIGH:MEDIUM:+GOST2001-GOST89;
    ssl_prefer_server_ciphers   on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
} 

Подробно настройка ssl-сертификата описывается в документации к nginx http://nginx.org/ru/docs...ule.html#ssl_certificate
При этом для параметра ssl_certificate_key вместо файла указывается зарезервированное слово "engine:", после которого следует имя OpenSSL ENGINE, в нашем случае это "gost_capi", далее следует зарезервированный символ ':', за которым следует имя сертификата. Например, для сертификата "www.vpngost.ru", значение ssl_certificate_key выглядело бы так: "engine:gost_capi:www.vpngost.ru"

После внесения изменений нужно запустить или перезапустить nginx.
Проверьте, что процессы nginx запущены от одного пользователя.
Код:
ps -aux | grep nginx


Проверка работы на стороне пользователя

Для успешного соединения через браузер Internet Explorer необходимо установить на компьютер пользователя сертификат (или цепочку сертификатов) доверенного Центра сертификации. После этого нужно зайти на настроенный сайт по HTTPS.
Примечание: при использовании ранних (до марта 2015) версий КриптоПро CSP с Windows 8 и выше на компьютере пользователя для корректного соединения нужно отключить SPDY и HTTP 1.1. Для этого в свойствах IE на вкладке Дополнительно в Параметрах HTTP снимите все три флажка.

Отредактировано модератором 27 июля 2021 г. 13:53:18(UTC)  | Причина: Инструкция устарела

Техническую поддержку оказываем тут.
Наша база знаний.
Offline valery.kazantsev  
#2 Оставлено : 15 апреля 2015 г. 14:56:07(UTC)
valery.kazantsev

Статус: Участник

Группы: Участники
Зарегистрирован: 15.04.2015(UTC)
Сообщений: 23
Российская Федерация
Откуда: Moscow

Сказал(а) «Спасибо»: 1 раз
Елена, здравствуйте!
Присутсвует ли возможность реализовать работу сразу с двумя серверными сертификатами RSA и ГОСТ для одного виртуального хоста. Как например в Trusted TLS:
Цитата:
Работа с двумя серверными сертификатами
Trusted TLS поддерживает режим работы одновременно с двумя серверными сертификатами
стандартов RSA и ГОСТ, сконфигурированными для одного виртуального сервера. Чтобы использовать
данный режим, в кoнфигурационном файле для данного виртуального сервера должно быть указано
две пары директив SSLCertificateFile и SSLCertificateKeyFile соответственно для каждого типа
сертификата (см. документацию на mod_ssl для подробностей конфигурации RSA сертификатов).
Данный режим имеет следующую особенность: клиенты с установленным КриптоПро CSP 3.0 и выше
смогут взаимодействовать с веб-сервером по TLS-соединению только с использованием ГОСТ
алгоритмов, а все остальные (у которых КриптоПро CSP не установлен или установлена версия 2.0)
будут поднимать защищенное соединение только с использованием алгоритмов RSA.

Например что-то вида:
Цитата:
server {
listen 443 ssl;
server_name localhost;

ssl_certificate /etc/nginx/cert.cer;
ssl_certificate_key engine:gost_capi:test.ru;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_certificate /etc/nginx/rsa_test.cer;
ssl_certificate_key /etc/nginx/rsa_test.key;

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5:GOST2001-GOST89;
ssl_prefer_server_ciphers on;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}


Если конечно я сейчас сконфигурирую nginx, то получу ошибку:
Цитата:

nginx: [emerg] "ssl_certificate" directive is duplicate in /etc/nginx/conf.d/ssl.conf:10
nginx: configuration file /etc/nginx/nginx.conf test failed


Но как в один виртуальный хост завернуть RSA и ГОСТ d'oh!
Offline ElenaS  
#3 Оставлено : 15 апреля 2015 г. 15:31:01(UTC)
Елена Серебренникова

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.04.2014(UTC)
Сообщений: 31
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте! Второй хост сделать не хотите? В данном случае это вопрос возможностей самого nginx.
Здесь описано подробнее.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline vega  
#4 Оставлено : 6 мая 2015 г. 7:59:37(UTC)
vega

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.10.2010(UTC)
Сообщений: 47
Российская Федерация

Сказал(а) «Спасибо»: 11 раз
В строчке
Код:
cpconfig -ini \config\apppath -add string libcurl.so /usr/local/lib/64/libcurl.so

ошибка, должно быть
Код:
cpconfig -ini \\config\\apppath -add string libcurl.so /usr/local/lib/64/libcurl.so
Offline ElenaS  
#5 Оставлено : 28 мая 2015 г. 17:34:46(UTC)
Елена Серебренникова

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.04.2014(UTC)
Сообщений: 31
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Спасибо за замечание!
Техническую поддержку оказываем тут.
Наша база знаний.
Offline ElenaS  
#6 Оставлено : 10 августа 2015 г. 18:26:34(UTC)
Елена Серебренникова

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.04.2014(UTC)
Сообщений: 31
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Автор: valery.kazantsev Перейти к цитате

Но как в один виртуальный хост завернуть RSA и ГОСТ


Добрый день! у нас вышел патч который может быть полезен для Вашей задачи.
Вот в этом описании настройки: Как настроить одновременную работу сайта на RSA и ГОСТ на nginx?
Техническую поддержку оказываем тут.
Наша база знаний.
Offline expelled  
#7 Оставлено : 30 сентября 2015 г. 17:10:13(UTC)
expelled

Статус: Участник

Группы: Участники
Зарегистрирован: 03.04.2015(UTC)
Сообщений: 21
Российская Федерация
Откуда: СПб

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 1 раз в 1 постах
Здраствуйте.

Пытаемся воспроизвести https://www.cryptopro.ru...ts&m=55563#post55563

У нас есть сертификат выданый вашим УЦ.
Есть сервер с Debian 8.
На сервер установлен необходимый комплект софта.
OpenSSL видит ваш engine.
Сделали импорт сертификата. Менеджер его показывает.
Цитата:
/opt/cprocsp/bin/amd64/certmgr -list
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer : E=cpca@cryptopro.ru, C=RU, L=Москва, O=ООО КРИПТО-ПРО, CN=УЦ KPИПTO-ПPO
Subject : E=noc@company.хххххххх.ru, C=RU, L=Sankt-Petersburg, O=OOO ХХХХХХХХ.RU, CN=*.хххххххх.ru
Serial : 0x4C98BEDE000E000197EE
SHA1 Hash : 0x375f967e2699ba295a6f7ffe9782e0e133b90e45
Not valid before : 23/09/2015 08:56:00 UTC
Not valid after : 23/09/2016 09:06:00 UTC
PrivateKey Link : No
=============================================================================

[ErrorCode: 0x00000000]


А как прилинковать ключь к сертификату?
Offline ElenaS  
#8 Оставлено : 30 сентября 2015 г. 18:15:18(UTC)
Елена Серебренникова

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.04.2014(UTC)
Сообщений: 31
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте! При установке сертификата в той же команде должен быть указан контейнер закрытого ключа.
Например:

Цитата:
./certmgr -inst -store uMy -file /media/floppy/testuser.cer -cont '\\.\FAT12_0\31cc730c-e57e-4b56-8014-9b8f2ab79d6d' –pin 12345


для перечисления доступных контейнеров можно использовать csptest

Цитата:
./csptest -keys -enum -verifyc -fqcn
Техническую поддержку оказываем тут.
Наша база знаний.
thanks 1 пользователь поблагодарил Елена Серебренникова за этот пост.
expelled оставлено 01.10.2015(UTC)
Offline kino13  
#9 Оставлено : 11 февраля 2016 г. 11:42:31(UTC)
kino13

Статус: Новичок

Группы: Участники
Зарегистрирован: 02.02.2016(UTC)
Сообщений: 3
Российская Федерация
Откуда: Moscow

Добрый день, подскажите пожалуйста, перед покупкой лицензи проводим тестирование на демо версии, выполняется всё по инструкции приведённой сверху, при попытке выполнить вот этот шаг ( /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\magnit' -provtype 75 -provname "Crypto-Pro GOST R 34.10-2001 KC2 CSP" ) получаю
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores

Can not open container

Provider DLL failed to initialize correctly.
[ErrorCode: 0x8009001d]

при том что :
/opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc -fqcn
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9680 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 10509747
\\.\HDIMAGE\magnit
OK.

1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : CN=magnit
Serial : 0x12000D9553137F1F203ACFECCE0000000D9553
SHA1 Hash : 0x0908e64347e6bb515b79659120c4362418ab2558
SubjKeyID : e6a056a3c747cbf31f87f26b68031c34c67a7711
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 10/02/2016 14:13:41 UTC
Not valid after : 10/05/2016 14:23:41 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\magnit.000\E5AB
Provider Name : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info : ProvType: 75, KeySpec: 1, Flags: 0x0
Extended Key Usage : 1.3.6.1.5.5.7.3.4
=============================================================================

Отредактировано пользователем 11 февраля 2016 г. 11:44:31(UTC)  | Причина: Не указана

Offline Nikolay Batischev  
#10 Оставлено : 11 февраля 2016 г. 12:32:59(UTC)
Николай Батищев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.11.2013(UTC)
Сообщений: 75
Мужчина
Албания
Откуда: Тирана

Сказал «Спасибо»: 3 раз
Поблагодарили: 13 раз в 12 постах
Автор: kino13 Перейти к цитате
Добрый день, подскажите пожалуйста, перед покупкой лицензи проводим тестирование на демо версии, выполняется всё по инструкции приведённой сверху, при попытке выполнить вот этот шаг ( /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\magnit' -provtype 75 -provname "Crypto-Pro GOST R 34.10-2001 KC2 CSP" ) получаю
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores

Can not open container

Provider DLL failed to initialize correctly.
[ErrorCode: 0x8009001d]

при том что :
/opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc -fqcn
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9680 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 10509747
\\.\HDIMAGE\magnit
OK.

1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : CN=magnit
Serial : 0x12000D9553137F1F203ACFECCE0000000D9553
SHA1 Hash : 0x0908e64347e6bb515b79659120c4362418ab2558
SubjKeyID : e6a056a3c747cbf31f87f26b68031c34c67a7711
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 10/02/2016 14:13:41 UTC
Not valid after : 10/05/2016 14:23:41 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\magnit.000\E5AB
Provider Name : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info : ProvType: 75, KeySpec: 1, Flags: 0x0
Extended Key Usage : 1.3.6.1.5.5.7.3.4
=============================================================================


Приведите список установленных пакетов | grep csp
Техническую поддержку оказываем тут
Общие консультации в телеграм
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
11 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.