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

Уведомление

Icon
Error

5 Страницы«<345
Опции
К последнему сообщению К первому непрочитанному
Offline Дмитрий Пичулин  
#41 Оставлено : 7 ноября 2017 г. 13:22:48(UTC)
pd

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

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,449
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 417 раз в 308 постах
Автор: chemtech Перейти к цитате
Запускаю по разному.
А ошибка все равно одна и та же

<...>

Код:
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/srvtest.cer") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)

Это не имеющая отношения к делу ошибка, уже отвечали, что нужна PEM кодировка.

Знания в базе знаний, поддержка в техподдержке
Offline chemtech  
#42 Оставлено : 7 ноября 2017 г. 13:56:51(UTC)
chemtech

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

Группы: Участники
Зарегистрирован: 01.11.2011(UTC)
Сообщений: 174

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Код:

user  root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       443 ssl;
        server_name  srvtest;

        ssl_certificate      /etc/nginx/srvtest.pem;
        ssl_certificate_key  engine:gost_capi:srvtest;
        ssl_certificate      srvtestRSA.pem;
        ssl_certificate_key  srvtestRSA.key;
        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   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}


Код:

nginx
nginx: [emerg] SSL_CTX_use_certificate("/etc/nginx/srvtest.pem") failed (SSL: error:0609E09C:digital envelope routines:PKEY_SET_TYPE:unsupported algorithm error:0B07706F:x509 certificate routines:X509_PUBKEY_get:unsupported algorithm error:140BF10C:SSL routines:SSL_SET_CERT:x509 lib)


Код:

sestatus 
SELinux status:                 disabled


Код:
vi -b srvtest.pem
-----BEGIN CERTIFICATE-----
MIIDSDCCAvegAwIBAgITEgAiNRLC42o2Fu4ncQAAACI1EjAIBgYqhQMCAgMwfzEj
...............................
-----END CERTIFICATE-----


Код:
openssl engine gost_capi
(gost_capi) CryptoPro ENGINE GOST CAPI ($Revision: 147820 $)



Все я понял
Использовал скрипты с github
Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP' -rdn 'CN=srvtest' -cont '\\.\HDIMAGE\srvtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrv

эту команду надо запускать так:
Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2001 KC1 CSP' -rdn 'CN=srvtest' -cont '\\.\HDIMAGE\srvtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrv


Попробую и отпишусь
Offline Дмитрий Пичулин  
#43 Оставлено : 7 ноября 2017 г. 14:30:35(UTC)
pd

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

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,449
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 417 раз в 308 постах
Автор: chemtech Перейти к цитате
Все я понял
Использовал скрипты с github
Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP' -rdn 'CN=srvtest' -cont '\\.\HDIMAGE\srvtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrv

эту команду надо запускать так:
Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2001 KC1 CSP' -rdn 'CN=srvtest' -cont '\\.\HDIMAGE\srvtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrv

Да, ключи 2012 года в gost_capi не поддерживаются -- факт, о чём собственно openssl и сообщал всё это время.

Используйте provtype 75 и provname 'Crypto-Pro GOST R 34.10-2001 KC1 CSP', в случае использования алгоритмов 2001 года.

Знания в базе знаний, поддержка в техподдержке
Offline chemtech  
#44 Оставлено : 7 ноября 2017 г. 15:11:59(UTC)
chemtech

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

Группы: Участники
Зарегистрирован: 01.11.2011(UTC)
Сообщений: 174

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Итак система
Код:
CentOS Linux release 7.4.1708 (Core) 

устанавливаю
Код:
yum install -y wget curl-devel
yum install -y lsb-cprocsp-base
yum install -y lsb-cprocsp-rdr-64
yum install -y lsb-cprocsp-capilite-64
yum install -y lsb-cprocsp-kc1-64
yum install -y lsb-cprocsp-kc2-64
yum install -y cprocsp-curl-64
yum install -y cprocsp-cpopenssl-gost-64


Код:
yum list *csp*
Installed Packages
cprocsp-cpopenssl-gost-64.x86_64 4.0.0-4
cprocsp-curl-64.x86_64           4.0.0-4
lsb-cprocsp-base.noarch          4.0.0-4
lsb-cprocsp-capilite-64.x86_64   4.0.0-4
lsb-cprocsp-kc1-64.x86_64        4.0.0-4
lsb-cprocsp-kc2-64.x86_64        4.0.0-4
lsb-cprocsp-rdr-64.x86_64        4.0.0-4


Вставляю после "oid_section = new_oids" текст в конфиг /etc/pki/tls/openssl.cnf

Код:
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


Код:
ldd /opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so.0.0.0  |grep not
ldd: warning: you do not have execution permission for `/opt/cprocsp/cp-openssl/lib/amd64/engines/libgost_capi.so.0.0.0'
	libcrypto.so.1.0.0 => not found


Код:

ln -s /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.1.0.0
/sbin/ldconfig /usr/lib64


Код:
openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gost_capi) CryptoPro ENGINE GOST CAPI ($Revision: 147820 $)


# Генерация тестового сертефиката:
Код:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype 75 -provname 'Crypto-Pro GOST R 34.10-2001 KC1 CSP' -rdn 'CN=srvtest' -cont '\\.\HDIMAGE\srvtest' -certusage 1.3.6.1.5.5.7.3.1 -ku -du -ex -ca http://cryptopro.ru/certsrv
CryptCP 4.0 (c) "Crypto-Pro", 2002-2015.
Command prompt Utility for 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 in 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 "srvtest".
Password:
Retype password:
Sending request to CA...
Installing certificate...
Message contains root certificate that is absent in your root store.
RDN:CRYPTO-PRO Test Center 2, CRYPTO-PRO LLC, Moscow, RU, support@cryptopro.ru
Valid from 05.08.2014 13:44:24 to 05.08.2019 13:54:03

Do you want to add it to Root store? [Y]es or [N]o: Do you want to add it to Root store? [Y]es or [N]o: Y
Adding certificate to Root store.
CryptoPro CSP: Type password for container "srvtest"
Password:
Certificate is installed.
[ReturnCode: 0]


# Смена KC1 на KC2 в имени провайдера, так как nginx работает с провайдером KC2:
Код:

/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\srvtest' -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

Install:
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=srvtest
Serial              : 0x1200225C4D5427CB69060F331B000000225C4D
SHA1 Hash           : 0x6c20865a4397069b6bbc7703ac3f5947d3818e89
SubjKeyID           : aa0d23c211fa3d9d66c95e00e7d917401c669a0b
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 07/11/2017  11:38:11 UTC
Not valid after     : 07/02/2018  11:48:11 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]


Не забудем установить nginx 1.12
Код:
 nginx -v
nginx version: nginx/1.12.2


# Экспорт сертификата:
Код:

 /opt/cprocsp/bin/amd64/certmgr -export -cert -dn "CN=srvtest" -dest '/etc/nginx/srvtest.cer'
Certmgr 1.0 (c) "CryptoPro",  2007-2010.
program for managing certificates, CRLs and stores

Exporting: 
=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=srvtest
Serial              : 0x1200225C4D5427CB69060F331B000000225C4D
SHA1 Hash           : 0x6c20865a4397069b6bbc7703ac3f5947d3818e89
SubjKeyID           : aa0d23c211fa3d9d66c95e00e7d917401c669a0b
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 07/11/2017  11:38:11 UTC
Not valid after     : 07/02/2018  11:48:11 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\srvtest.000\AF26
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 complete

[ErrorCode: 0x00000000]


# Смена кодировкии сертификата DER на PEM:
Код:

openssl x509 -inform DER -in "/etc/nginx/srvtest.cer" -out "/etc/nginx/srvtest.pem"
Ничего не выдало


# Генерация сертификатов RSA:
Код:

openssl req -x509 -newkey rsa:2048 -keyout /etc/nginx/srvtestRSA.key -nodes -out /etc/nginx/srvtestRSA.pem -subj '/CN=srvtestRSA/C=RU'
Generating a 2048 bit RSA private key
................................................................................................+++
.....................................................................+++
writing new private key to '/etc/nginx/srvtestRSA.key'
-----


Код:

openssl rsa -in /etc/nginx/srvtestRSA.key -out /etc/nginx/srvtestRSA.key
writing RSA key


Удаление конфигурации по умолчанию
Код:

rm -f /etc/nginx/conf.d/default.conf


Конфигурация nginx
Код:
user  root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       443 ssl;
        server_name  srvtest;

        ssl_certificate      /etc/nginx/srvtest.pem;
        ssl_certificate_key  engine:gost_capi:srvtest;
        ssl_certificate      srvtestRSA.pem;
        ssl_certificate_key  srvtestRSA.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1;
        ssl_ciphers GOST2001-GOST89-GOST89:HIGH;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}


Запуск nginx
Код:
nginx
CryptoPro CSP: Type password for container "srvtest"
Password:

Отредактировано пользователем 7 ноября 2017 г. 15:31:27(UTC)  | Причина: Не указана

Offline Дмитрий Пичулин  
#45 Оставлено : 7 ноября 2017 г. 15:26:12(UTC)
pd

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

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,449
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 417 раз в 308 постах
Автор: chemtech Перейти к цитате
Конфигурация nginx
Код:
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;

В такой конфигурации у вас будет работать RSA вариант, даже у тех, кто поддерживает ГОСТ.

Об этом есть в FAQ:

Автор: pd Перейти к цитате
Как настроить одновременную работу ГОСТ и RSA в nginx?

Начиная с версии 1.11.0 в nginx возможно использовать несколько сертификатов для сервера одновременно.

Для типичной работы ГОСТ TLS в nginx (сначала ГОСТ потом RSA), следует использовать приоритеты шифросюит (сначала ГОСТ потом всё остальное), например так:

Код:
ssl_ciphers GOST2001-GOST89-GOST89:HIGH;





Знания в базе знаний, поддержка в техподдержке
Offline chemtech  
#46 Оставлено : 7 ноября 2017 г. 15:32:53(UTC)
chemtech

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

Группы: Участники
Зарегистрирован: 01.11.2011(UTC)
Сообщений: 174

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Спасибо. Поправил
Offline chemtech  
#47 Оставлено : 8 ноября 2017 г. 9:30:35(UTC)
chemtech

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

Группы: Участники
Зарегистрирован: 01.11.2011(UTC)
Сообщений: 174

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
А можно ли поменять название темы на "Установка и настройка ванильной версии nginx 1.12.2 с ванильним openssl 1.0.2k c КриптоПро 4.0 R2" ?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
5 Страницы«<345
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.