logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

7 Страницы«<4567>
Опции
К последнему сообщению К первому непрочитанному
Offline Дмитрий Пичулин  
#101 Оставлено : 10 августа 2018 г. 10:23:39(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: sturi7l Перейти к цитате
Да я и не в претензии. Просто в инструкции об этом ни слова, в свое время потратил на это какое-то количество времени. Может быть, имеет смысл отразить?

Что именно необходимо отразить?

Скрипты в данной теме полностью рабочие. Мы их проверяем.

У пользователя может быть множество нюансов, если он действует самостоятельно.

Знания в базе знаний, поддержка в техподдержке
Offline Mikhail0101  
#102 Оставлено : 29 августа 2018 г. 6:44:22(UTC)
Mikhail0101

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Добрый день, коллеги.

Стоит задача настроить nginx таким образом, чтобы на вход приходили данные по протоколу HTTP и проксировались на другой сервер по протоколу HTTPS + GOST2012-GOST8912-GOST8912.

Возникает ошибка:
Код:
[crit] 30199#30199: *19 SSL_do_handshake() failed (SSL: error:80005022:lib(128):gng_support_create_pubkey_3410:CryptImportPublicKeyInfo error:0B09407D:x509 certificate routines:x509_pubkey_decode:public key decode error error:1416F0EF:SSL routines:tls_process_server_certificate:unable to find public key parameters) while SSL handshaking to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "https://x.x.x.x:3000/", host: "localhost:3000"


При этом, если попытаться сделать запрос с помощью curl, который идет в поставке CSP, напрямую на целевой сервер по HTTPS - всё ок.
Nginx и CSP устанавливались с помощью скрипта.

Код:
CentOS Linux release 7.5.1804 (Core)


Код:
[root@test-sandbox-1 ~]# yum list | grep cprocsp
cprocsp-cpopenssl-110-64.x86_64   5.0.11099-5            installed
cprocsp-cpopenssl-110-base.noarch 5.0.11099-5            installed
cprocsp-cpopenssl-110-devel.noarch
cprocsp-cpopenssl-110-gost-64.x86_64
cprocsp-curl-64.x86_64            5.0.11128-5            installed
lsb-cprocsp-base.noarch           5.0.11128-5            installed
lsb-cprocsp-ca-certs.noarch       5.0.11128-5            installed
lsb-cprocsp-capilite-64.x86_64    5.0.11128-5            installed
lsb-cprocsp-kc1-64.x86_64         5.0.11128-5            installed
lsb-cprocsp-kc2-64.x86_64         5.0.11128-5            installed
lsb-cprocsp-rdr-64.x86_64         5.0.11128-5            installed


Код:
[root@test-sandbox-1 ~]# nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.1.0h  27 Mar 2018
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=root --group=nginx --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'


Код:
[root@test-sandbox-1 ~]# ldd /usr/sbin/nginx
        linux-vdso.so.1 =>  (0x00007ffd3ac70000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fefc5f1d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fefc5d01000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fefc5aca000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fefc5868000)
        libssl.so.1.1 => /opt/cprocsp/cp-openssl-1.1.0/lib/amd64/libssl.so.1.1 (0x00007fefc55fa000)
        libcrypto.so.1.1 => /opt/cprocsp/cp-openssl-1.1.0/lib/amd64/libcrypto.so.1.1 (0x00007fefc5175000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fefc4f5f000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fefc4b92000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fefc647a000)
        libfreebl3.so => /lib64/libfreebl3.so (0x00007fefc498f000)


Код:
[root@test-sandbox-1 ~]# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 174535 $)


Конфигурация nginx:
Код:
    server {
        listen 3000;

        location / {
            proxy_pass https://x.x.x.x:3000;
            proxy_ssl_verify off;
            proxy_ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH;
            proxy_ssl_protocols TLSv1.2;
        }
    }


В чем может быть проблема?

Offline Дмитрий Пичулин  
#103 Оставлено : 29 августа 2018 г. 7:27:54(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: Mikhail0101 Перейти к цитате
Стоит задача настроить nginx таким образом, чтобы на вход приходили данные по протоколу HTTP и проксировались на другой сервер по протоколу HTTPS + GOST2012-GOST8912-GOST8912.

Возникает ошибка:
Код:
[crit] 30199#30199: *19 SSL_do_handshake() failed (SSL: error:80005022:lib(128):gng_support_create_pubkey_3410:CryptImportPublicKeyInfo error:0B09407D:x509 certificate routines:x509_pubkey_decode:public key decode error error:1416F0EF:SSL routines:tls_process_server_certificate:unable to find public key parameters) while SSL handshaking to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "https://x.x.x.x:3000/", host: "localhost:3000"


...

Конфигурация nginx:
Код:
    server {
        listen 3000;

        location / {
            proxy_pass https://x.x.x.x:3000;
            proxy_ssl_verify off;
            proxy_ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH;
            proxy_ssl_protocols TLSv1.2;
        }
    }


В чем может быть проблема?

А что за сервер https? Как нам воспроизвести ошибку?

Знания в базе знаний, поддержка в техподдержке
Offline Mikhail0101  
#104 Оставлено : 29 августа 2018 г. 8:00:47(UTC)
Mikhail0101

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Цитата:
А что за сервер https? Как нам воспроизвести ошибку?


HTTPS сервер на базе MS IIS и КриптоПро CSP 4.x

Код:
[root@test-sandbox-1 ~]$ /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -connect x.x.x.x:3000
CONNECTED(00000005)
depth=0 CN = xxxxxxxxx
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = xxxxxxxxx
verify error:num=21:unable to verify the first certificate
verify return:1
---

...

---
No client certificate CA names sent
---
SSL handshake has read 1583 bytes and written 413 bytes
Verification error: unable to verify the first certificate
---
New, TLSv1.0, Cipher is GOST2012-GOST8912-GOST8912
Server public key is 512 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : GOST2012-GOST8912-GOST8912
    Session-ID: E58378F2F15683D6AD17B4FCB050D7957CB8E0A2A8AC928C8663AAED9CED10D9
    Session-ID-ctx:
    Master-Key: DFDB7E1DF021E2C8CFE642F1BC07D765399DE748A04C0255ECA162FE93D65F60FEDC106A3AAA39967D9CF8C21C1770FA
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1535528772
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
    Extended master secret: no
---

Offline Дмитрий Пичулин  
#105 Оставлено : 29 августа 2018 г. 11:23:13(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: Mikhail0101 Перейти к цитате
Цитата:
А что за сервер https? Как нам воспроизвести ошибку?


HTTPS сервер на базе MS IIS и КриптоПро CSP 4.x

Всё должно работать без проблем, не видим ошибок со своей стороны.

Давайте включим логирование на уровне CSP и посмотрим полученные логи.

Код:
cpconfig -loglevel cpcsp -mask 0x3F
cpconfig -loglevel capi10 -mask 0x3F
cpconfig -loglevel cpext -mask 0x3F
cpconfig -loglevel capi20 -mask 0x3F
cpconfig -loglevel capilite -mask 0x3F
cpconfig -loglevel cryptsrv -mask 0x3F

cpconfig -loglevel cpcsp_fmt -mask 0x7F
cpconfig -loglevel capi10_fmt -mask 0x7F
cpconfig -loglevel cpext_fmt -mask 0x7F
cpconfig -loglevel capi20_fmt -mask 0x7F
cpconfig -loglevel capilite_fmt -mask 0x7F
cpconfig -loglevel cryptsrv_fmt -mask 0x7F


Знания в базе знаний, поддержка в техподдержке
Offline Mikhail0101  
#106 Оставлено : 29 августа 2018 г. 13:11:31(UTC)
Mikhail0101

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Включил логирование CSP, перезапустил nginx - новых ошибок в логах (/var/log/nginx/error.log, /var/log/messages) не появилось...
Offline Дмитрий Пичулин  
#107 Оставлено : 30 августа 2018 г. 13:34:46(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: Mikhail0101 Перейти к цитате
Включил логирование CSP, перезапустил nginx - новых ошибок в логах (/var/log/nginx/error.log, /var/log/messages) не появилось...

Да, ошибка оказалась крепким орешком.

При типичном использовании nginx в качестве сервера, всегда есть ссылка на закрытый ключ через gostengy, поэтому криптографический модуль OpenSSL никогда не выгружается.

В вашей конфигурации нет ссылок на gostengy, так как у вас в конфигурации только клиентское соединение, не использующее закрытый ключ.

При такой конфигурации, мастер процесс nginx после запуска рабочих процессов делает cleanup, который освобождает неиспользуемые модули, что приводит к освобождению глобального контекста, который общий для всех процессов. После этого рабочие процессы не могут пользоваться контекстом, так как он был освобождён.

Это исправлено. Проверено. Скрипты обновлены.
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Дмитрий Пичулин за этот пост.
Mikhail0101 оставлено 16.09.2018(UTC)
Offline Mikhail0101  
#108 Оставлено : 31 августа 2018 г. 3:56:48(UTC)
Mikhail0101

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Дмитрий, спасибо за помощь и, особенно, за оперативность.

Проверил на своей стороне - теперь всё работает. На всякий случай, оставлю пример конфигурации nginx в качестве прокси к серверу по протоколу https/tls с алгоритмами ГОСТ 2012, вдруг кому пригодится:

Код:
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 xxxx;
 
      location / {
        proxy_pass https://x.x.x.x:xxxx;
 
        proxy_ssl_verify off;
        proxy_ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH;
        proxy_ssl_protocols TLSv1.2;
        
        # Если предполагается двухсторонний TLS, то нужно указать клиентский сертификат и приватный ключ параметрами proxy_ssl_certificate и proxy_ssl_certificate_key соответственно
        # proxy_ssl_certificate /etc/nginx/client.pem;
        # proxy_ssl_certificate_key engine:gostengy:client;
       }
    }
}
thanks 2 пользователей поблагодарили Mikhail0101 за этот пост.
Дмитрий Пичулин оставлено 31.08.2018(UTC), jjjbushjjj оставлено 15.09.2018(UTC)
Offline jjjbushjjj  
#109 Оставлено : 15 сентября 2018 г. 18:25:35(UTC)
jjjbushjjj

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: Mikhail0101 Перейти к цитате
Дмитрий, спасибо за помощь и, особенно, за оперативность.

Проверил на своей стороне - теперь всё работает. На всякий случай, оставлю пример конфигурации nginx в качестве прокси к серверу по протоколу https/tls с алгоритмами ГОСТ 2012, вдруг кому пригодится:

Код:
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 xxxx;
 
      location / {
        proxy_pass https://x.x.x.x:xxxx;
 
        proxy_ssl_verify off;
        proxy_ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH;
        proxy_ssl_protocols TLSv1.2;
        
        # Если предполагается двухсторонний TLS, то нужно указать клиентский сертификат и приватный ключ параметрами proxy_ssl_certificate и proxy_ssl_certificate_key соответственно
        # proxy_ssl_certificate /etc/nginx/client.pem;
        # proxy_ssl_certificate_key engine:gostengy:client;
       }
    }
}



Михаил, не могли бы вы показать как вы сгенерили клиентский сертификат? Если вы это делали (То что закоментировано).
Я никак не могу сделать сертификат который бы принимали удаленные сервера. Конфиг у меня +- такойже.
Offline Mikhail0101  
#110 Оставлено : 16 сентября 2018 г. 8:17:14(UTC)
Mikhail0101

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

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

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

Михаил, не могли бы вы показать как вы сгенерили клиентский сертификат? Если вы это делали (То что закоментировано).
Я никак не могу сделать сертификат который бы принимали удаленные сервера. Конфиг у меня +- такойже.


Клиентский сертификат для тестовых нужд генерил через тестовый УЦ КриптоПро по второй ссылке на странице https://www.cryptopro.ru/solutions/test-ca

Нужно также убедиться, что сертификат имеет кодировку PEM, как указано здесь https://www.cryptopro.ru...ts&m=83282#post83282

Offline jjjbushjjj  
#111 Оставлено : 16 сентября 2018 г. 9:59:05(UTC)
jjjbushjjj

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: Mikhail0101 Перейти к цитате
Автор: jjjbushjjj Перейти к цитате

Михаил, не могли бы вы показать как вы сгенерили клиентский сертификат? Если вы это делали (То что закоментировано).
Я никак не могу сделать сертификат который бы принимали удаленные сервера. Конфиг у меня +- такойже.


Клиентский сертификат для тестовых нужд генерил через тестовый УЦ КриптоПро по второй ссылке на странице https://www.cryptopro.ru/solutions/test-ca

Нужно также убедиться, что сертификат имеет кодировку PEM, как указано здесь https://www.cryptopro.ru...ts&m=83282#post83282




Ну у меня проблема в том что мне надо сгенерить его в линуксе без графического интерфейса и браузера.
В скриптах этих есть пример как это делается для серверного сертификата для nginx.
Я немного поменял там (добавил OID в поле --certusage чтобы был клиентский сертификат).
Все красиво сгенерилось, но после конвертации в .cer Сертификат получается без поля Client

проверить можно так

openssl x509 -purpose -noout -in client.crt.pem
Certificate purposes:
SSL client : No
...

собственно из за этого удаленные сервера не хотят его принимать (Возвращают 400 Bad certificate purpose).

Offline jjjbushjjj  
#112 Оставлено : 17 сентября 2018 г. 8:03:11(UTC)
jjjbushjjj

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: jjjbushjjj Перейти к цитате
Автор: Mikhail0101 Перейти к цитате
Автор: jjjbushjjj Перейти к цитате

Михаил, не могли бы вы показать как вы сгенерили клиентский сертификат? Если вы это делали (То что закоментировано).
Я никак не могу сделать сертификат который бы принимали удаленные сервера. Конфиг у меня +- такойже.


Клиентский сертификат для тестовых нужд генерил через тестовый УЦ КриптоПро по второй ссылке на странице https://www.cryptopro.ru/solutions/test-ca

Нужно также убедиться, что сертификат имеет кодировку PEM, как указано здесь https://www.cryptopro.ru...ts&m=83282#post83282




Ну у меня проблема в том что мне надо сгенерить его в линуксе без графического интерфейса и браузера.
В скриптах этих есть пример как это делается для серверного сертификата для nginx.
Я немного поменял там (добавил OID в поле --certusage чтобы был клиентский сертификат).
Все красиво сгенерилось, но после конвертации в .cer Сертификат получается без поля Client

проверить можно так

openssl x509 -purpose -noout -in client.crt.pem
Certificate purposes:
SSL client : No
...

собственно из за этого удаленные сервера не хотят его принимать (Возвращают 400 Bad certificate purpose).




Ок. разобрался. Оставлю тут может пригодится кому.

1. Делаем контейнер и генерим приватные ключи

2. Делаем запрос на сертификат
cryptcp -creatrqst -dn "cn=TestUser,e=test_client@example.ru" -provtype 81 -nokeygen -cont '\\.\HDIMAGE\test_client' -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" test_user.req
Эти красненькие цифирьки это как раз те самые certificate purpose (1.3.6.1.5.5.7.3.2 - client certificate)

3. Лезем на http://www.cryptopro.ru/certsrv и пихаем туда содержимое test_user.req

4. Скачиваем подписаный сертификат и пихаем его в контейнер
certmgr -inst -file certnew.cer -store uMy -cont '\\.\HDIMAGE\test_client' --inst_to_cont

5. конвертим в PEM то что они нам прислали и пихаем в nginx (Вот тут то самое интересное, нам не надо делать экспорт из криптопрошного хранилища так как сертификат у нас и так есть в нормальном формате)
openssl x509 -inform DER -in certnew.cer -out certnew.pem

вот с этим все заработало.

вот неплохая шпаргалка как эти манипуляции делать
https://www.altlinux.org...%D0%BE%D0%9F%D1%80%D0%BE

Есть подозрение, что експорт из криптопрошного хранилища в .cer херит эти самые purpose.


Offline chemtech  
#113 Оставлено : 17 сентября 2018 г. 11:17:00(UTC)
chemtech

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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Коллеги, когда примерно можно будет использовать CryptoPro с nginx (Linux) с ГОСТ 2012 года из коробки?
Спасибо

Отредактировано пользователем 17 сентября 2018 г. 11:21:09(UTC)  | Причина: Не указана

Offline Дмитрий Пичулин  
#114 Оставлено : 17 сентября 2018 г. 11:35:38(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: chemtech Перейти к цитате
Коллеги, когда примерно можно будет использовать CryptoPro с nginx (Linux) с ГОСТ 2012 года из коробки?
Спасибо

Если речь про ошибку в прошлой версии OpenSSL 1.1.0, которая не позволяла работать ГОСТу, то эта ошибка исправлена в текущей версии OpenSSL.

Если речь про что-то другое, то скорее всего без дополнительных манипуляций из коробки ГОСТ 2012 никогда не заработает.
Знания в базе знаний, поддержка в техподдержке
Offline chemtech  
#115 Оставлено : 18 сентября 2018 г. 4:46:21(UTC)
chemtech

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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Автор: Дмитрий Пичулин Перейти к цитате
Автор: chemtech Перейти к цитате
Коллеги, когда примерно можно будет использовать CryptoPro с nginx (Linux) с ГОСТ 2012 года из коробки?
Спасибо

Если речь про ошибку в прошлой версии OpenSSL 1.1.0, которая не позволяла работать ГОСТу, то эта ошибка исправлена в текущей версии OpenSSL.

Если речь про что-то другое, то скорее всего без дополнительных манипуляций из коробки ГОСТ 2012 никогда не заработает.


Речь не о ванильном OpenSSL
Перефразирую вопрос:

Коллеги, когда примерно можно будет установить пакеты CryptoPro (cprocsp-compat-debian, cprocsp-cpopenssl-110-64, cprocsp-cpopenssl-110-base, cprocsp-cpopenssl-110-devel, cprocsp-cpopenssl-110-gost-64, cprocsp-curl-64, lsb-cprocsp-base, lsb-cprocsp-capilite-64, lsb-cprocsp-kc1-64, lsb-cprocsp-kc2-64, lsb-cprocsp-rdr-64) на Linux чтобы из коробки заработал HTTPS ГОСТ 2012 года?
Offline Дмитрий Пичулин  
#116 Оставлено : 19 сентября 2018 г. 14:15:05(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: chemtech Перейти к цитате
Перефразирую вопрос:

Коллеги, когда примерно можно будет установить пакеты CryptoPro (cprocsp-compat-debian, cprocsp-cpopenssl-110-64, cprocsp-cpopenssl-110-base, cprocsp-cpopenssl-110-devel, cprocsp-cpopenssl-110-gost-64, cprocsp-curl-64, lsb-cprocsp-base, lsb-cprocsp-capilite-64, lsb-cprocsp-kc1-64, lsb-cprocsp-kc2-64, lsb-cprocsp-rdr-64) на Linux чтобы из коробки заработал HTTPS ГОСТ 2012 года?

Как только nginx начнёт использовать из коробки в вашем Linux версию OpenSSL >= 1.1.0 так сразу.
Знания в базе знаний, поддержка в техподдержке
Offline chemtech  
#117 Оставлено : 19 сентября 2018 г. 14:42:31(UTC)
chemtech

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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Т.е. если я установлю nginx + cryptopro на этих системах, то HTTPS ГОСТ 2018 будет работать
Fedora 28
1.1.0h-3.fc28

Fedora 27
1.1.0h-3.fc27

Ubuntu bionic (18.04LTS)
1.1.0g-2ubuntu4.1
?
Надо попробовать

Скрипт ругается на Fedora 28 :(
Код:
Not supported system (supported: Ubuntu, Debian, CentOS, Red Hat).

Отредактировано пользователем 19 сентября 2018 г. 15:13:02(UTC)  | Причина: Не указана

Offline Дмитрий Пичулин  
#118 Оставлено : 19 сентября 2018 г. 15:23:22(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: chemtech Перейти к цитате
Т.е. если я установлю nginx + cryptopro на этих системах, то HTTPS ГОСТ 2018 будет работать
Fedora 28
1.1.0h-3.fc28

Fedora 27
1.1.0h-3.fc27

Ubuntu bionic (18.04LTS)
1.1.0g-2ubuntu4.1
?
Надо попробовать

Скрипт ругается на Fedora 28 :(
Код:
Not supported system (supported: Ubuntu, Debian, CentOS, Red Hat).

А при чём тут скрипт? Устанавливайте пакеты. Работайте из коробки.
Знания в базе знаний, поддержка в техподдержке
Offline chemtech  
#119 Оставлено : 19 сентября 2018 г. 16:40:39(UTC)
chemtech

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

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

Сказал(а) «Спасибо»: 11 раз
Поблагодарили: 1 раз в 1 постах
Для быстрого развертывания и тестирования nginx c OpenSSL 1.1.0 с КриптоПро сделал Dockerfile:

https://github.com/patse...u/blob/master/Dockerfile

Инструкция как запустить находится на главной странице репозитория

https://github.com/patsevanton/GOST-2012-ubuntu

Сейчас при установке сертификатов появляется вот такая ошибка:

Код:

Step 8/10 : RUN ./install-certs.sh
 ---> Running in 7a9ca206fa13
+ ARGV=
+ certname=srvtest
+ container=ngxtest
+ provtype=81
+ provnameKC1='Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP'
+ provnameKC2='Crypto-Pro GOST R 34.10-2012 KC2 Strong CSP'
+ grep CN=srvtest
+ /opt/cprocsp/bin/amd64/certmgr -list
Failed to open store
The requested address is not valid in its context.
+ '[' 1 -eq 0 ']'
+ /opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMCONTAINERS
+ grep ngxtest
An error occurred in running the program.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/support/getcspparam.c:28:Can not get CSP param: AcquireContext failed.
Error number 0x2741 (10049).
The requested address is not valid in its context.
An error occurred in running the program.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/csptest/enum.c:399:Error during CryptAcquireContext.

Error number 0x2741 (10049).
The requested address is not valid in its context.
Program is terminating.
+ '[' 1 -eq 0 ']'
+ /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://cryptopro.ru/certsrv
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.
Creating request...
Press keys...
[]Error: The action was cancelled by the user./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:441: 0x8010006E
Error: The action was cancelled by the user./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:1003: 0x8010006E
[ErrorCode: 0x8010006e]
+ exit 1
ERROR: Service 'gost-2012' failed to build: The command '/bin/sh -c ./install-certs.sh' returned a non-zero code: 1


В чем может быть ошибка?
Можно ли запустить debug?
Надо сюда глянуть https://github.com/taigasys/CryptoProCSP

Отредактировано пользователем 19 сентября 2018 г. 16:46:02(UTC)  | Причина: Не указана

Offline Дмитрий Пичулин  
#120 Оставлено : 19 сентября 2018 г. 19:50:39(UTC)
Дмитрий Пичулин

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

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

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 105 раз в 90 постах
Автор: chemtech Перейти к цитате
+ /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://cryptopro.ru/certsrv
CryptCP 4.0 (c) "Crypto-Pro", 2002-2017.
Command prompt Utility for file signature and encryption.
Creating request...
Press keys...
[]Error: The action was cancelled by the user./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:441: 0x8010006E
Error: The action was cancelled by the user./dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/CPCrypt/Enroll.cpp:1003: 0x8010006E
[ErrorCode: 0x8010006e]
+ exit 1

Генерация ключей с помощью биологического датчика случайных чисел возможна только в живой консоли.

При работе в рамках контейнеров, лучший вариант -- использовать заранее подготовленный pfx в качестве контейнера с сертификатом.

Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
7 Страницы«<4567>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.