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

Уведомление

Icon
Error

39 Страницы«<3536373839>
Опции
К последнему сообщению К первому непрочитанному
Offline pd  
#361 Оставлено : 21 апреля 2021 г. 12:02:42(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Yuzhanin35 Перейти к цитате
Добрый день.
Подскажите пожалуйста, куда копать в данном случае.
Пробовал выполнять настройку CryptoPro на RedHat 7.6 как по указанным скриптам, так и по шагам. В результате при запуске ngingx получаю такую ошибку:
Цитата:

root@redhatnginx ~]# /etc/start-nginx.sh
spawn /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx: [emerg] SSL_CTX_use_certificate("/etc/nginx/srvtest.pem") failed (SSL: error:0609E09C:digital envelope routines:pkey_set_type:unsupported algorithm error:0B09406F:x509 certificate routines:x509_pubkey_decode:unsupported algorithm error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small)
send: spawn id exp6 not open


Версия nginx и openssl (мне нужно воспроизвести конфигурацию именно с такими версиями):

Цитата:
]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.0i 14 Aug 2018
TLS SNI support enabled


При сборке nginx я указал в скрипте ветку для nginx, и качнул определенную версию openssl.
Затем в скрипте установки прописал -- with-openssl=/home/openssl-1.1.0i

Конфиг nginx:

Цитата:

user root;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


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

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

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

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

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


# HTTPS server
server {
listen 443 ssl;
server_name localhost;

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


location / {




Я правильно понимаю, что судя по ошибке, nginx обращается к системному openssl, версия которого не поддерживает ГОСТ, а не к 1.1.0i.
Помогите пожалуйста решить, данную ошибку.


gostengy должен работать в любом openssl 1.1.x, пропишите его подгрузку в openssl.cnf, проверьте командой "openssl engine".
Знания в базе знаний, поддержка в техподдержке
Offline Yuzhanin35  
#362 Оставлено : 21 апреля 2021 г. 12:33:34(UTC)
Yuzhanin35

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

Группы: Участники
Зарегистрирован: 21.04.2021(UTC)
Сообщений: 9
Откуда: RU

Сказал(а) «Спасибо»: 1 раз
Цитата:
gostengy должен работать в любом openssl 1.1.x, пропишите его подгрузку в openssl.cnf, проверьте командой "openssl engine".

Могли бы вы подсказать, как правильно это сделать?
Offline pd  
#363 Оставлено : 21 апреля 2021 г. 12:58:46(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Yuzhanin35 Перейти к цитате
Цитата:
gostengy должен работать в любом openssl 1.1.x, пропишите его подгрузку в openssl.cnf, проверьте командой "openssl engine".

Могли бы вы подсказать, как правильно это сделать?

Вот FAQ: https://www.cryptopro.ru...ts&m=55563#post55563
Знания в базе знаний, поддержка в техподдержке
Offline Yuzhanin35  
#364 Оставлено : 21 апреля 2021 г. 14:25:04(UTC)
Yuzhanin35

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

Группы: Участники
Зарегистрирован: 21.04.2021(UTC)
Сообщений: 9
Откуда: RU

Сказал(а) «Спасибо»: 1 раз
pd, спасибо за ответ.
добавил

openssl_conf = openssl_def

[openssl_def]
engines = engine_section

[engine_section]
gostengy = gost_section

[gost_section]
engine_id = gostengy
dynamic_path = /path/to/dll/or/so/gostengy.dll
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1

в файл конфигурации /usr/local/ssl/openssl.cnf как написано в FAQ. При проверке получаю такие ошибки:


[root@redhatnginx ~]# openssl engine
(dynamic) Dynamic engine loading support
[root@redhatnginx ~]# nano /usr/local/ssl/openssl.cnf
[root@redhatnginx ~]# openssl engine
(dynamic) Dynamic engine loading support
0:error:2507006C:DSO support routines:DSO_load:functionality not supported:crypto/dso/dso_lib.c:157:
0:error:260B6084:engine routines:dynamic_load:dso not found:crypto/engine/eng_dyn.c:414:
0:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto/engine/eng_cnf.c:141:section=gost_section, name=dynamic_path, value=/path/to/dll/or/so/gostengy.dll
0:error:0E07606D:configuration file routines:module_run:module initialization error:crypto/conf/conf_mod.c:173:module=engines, value=engine_section, retcode=-1


однако если если выполнит команду: #/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine то вывод такой:

[root@redhatnginx ~]# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 211453 $)
[root@redhatnginx ~]#

На какой вывод мне ориентироваться?
Offline pd  
#365 Оставлено : 21 апреля 2021 г. 14:35:24(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Yuzhanin35 Перейти к цитате
pd, спасибо за ответ.
добавил

openssl_conf = openssl_def

[openssl_def]
engines = engine_section

[engine_section]
gostengy = gost_section

[gost_section]
engine_id = gostengy
dynamic_path = /path/to/dll/or/so/gostengy.dll
default_algorithms = CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1

в файл конфигурации /usr/local/ssl/openssl.cnf как написано в FAQ. При проверке получаю такие ошибки:


[root@redhatnginx ~]# openssl engine
(dynamic) Dynamic engine loading support
[root@redhatnginx ~]# nano /usr/local/ssl/openssl.cnf
[root@redhatnginx ~]# openssl engine
(dynamic) Dynamic engine loading support
0:error:2507006C:DSO support routines:DSO_load:functionality not supported:crypto/dso/dso_lib.c:157:
0:error:260B6084:engine routines:dynamic_load:dso not found:crypto/engine/eng_dyn.c:414:
0:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto/engine/eng_cnf.c:141:section=gost_section, name=dynamic_path, value=/path/to/dll/or/so/gostengy.dll
0:error:0E07606D:configuration file routines:module_run:module initialization error:crypto/conf/conf_mod.c:173:module=engines, value=engine_section, retcode=-1


однако если если выполнит команду: #/opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine то вывод такой:

[root@redhatnginx ~]# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 211453 $)
[root@redhatnginx ~]#

На какой вывод мне ориентироваться?

Две разные версии openssl с разными конфигурациями, в первом случае видимо системная версия, во втором cryptopro.

Очевидно, что "/path/to/dll/or/so/gostengy.dll" нужно было исправить в соответствие с реальным положением библиотеки в системе.
Знания в базе знаний, поддержка в техподдержке
Offline Yuzhanin35  
#366 Оставлено : 21 апреля 2021 г. 15:27:58(UTC)
Yuzhanin35

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

Группы: Участники
Зарегистрирован: 21.04.2021(UTC)
Сообщений: 9
Откуда: RU

Сказал(а) «Спасибо»: 1 раз
Я правильно понимаю, что требуемая мне библиотека так и будет называться gostengy.dll?
Если ее нет в системе, как ее можно установить?
Заранее спасибо за помощь.
Offline pd  
#367 Оставлено : 21 апреля 2021 г. 16:05:32(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Yuzhanin35 Перейти к цитате
Я правильно понимаю, что требуемая мне библиотека так и будет называться gostengy.dll?
Если ее нет в системе, как ее можно установить?
Заранее спасибо за помощь.

Нет, расширение будет другое, .dll - типичное расширение библиотеки для Windows.

Просто найдите конфиги openssl в системе и сравните рабочий и нерабочий варианты.
Знания в базе знаний, поддержка в техподдержке
Offline Yuzhanin35  
#368 Оставлено : 22 апреля 2021 г. 11:34:13(UTC)
Yuzhanin35

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

Группы: Участники
Зарегистрирован: 21.04.2021(UTC)
Сообщений: 9
Откуда: RU

Сказал(а) «Спасибо»: 1 раз
Посмотрел конфиги в системном openssl.cnf. там строка с dynamic_path вообще закомментирована:
# dynamic_path = /opt/cprocsp/cp-openssl-1.1.0/lib/amd64/engines/libgostengy.so

Сделал тоже самое, получаю ошибки:

[root@redhatnginx ~]# openssl engine
(dynamic) Dynamic engine loading support
0:error:260B6084:engine routines:dynamic_load:dso not found:crypto/engine/eng_dyn.c:414:
0:error:2606A074:engine routines:ENGINE_by_id:no such engine:crypto/engine/eng_list.c:339:id=gostengy
0:error:260BC066:engine routines:int_engine_configure:engine configuration error:crypto/engine/eng_cnf.c:141:section=gost_section, name=default_algorithms, value=CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1
0:error:0E07606D:configuration file routines:module_run:module initialization error:crypto/conf/conf_mod.c:173:module=engines, value=engine_section, retcode=-1

Я так понимаю, что нужный openssl не видит gostengy модуль.

Как то можно gostengy скачать отдельно и доустановить руками? Либо можно ли скачать вручную и потом поставить gost-openssl от КриптоПро версии 1.1.0i для RedHat7.6?
Offline two_oceans  
#369 Оставлено : 27 апреля 2021 г. 7:04:07(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 395 раз в 366 постах
Цитата:
нужный openssl не видит gostengy модуль
Не видит пути, где найти библиотеку.
Цитата:
там строка с dynamic_path вообще закомментирована:
Если путь не указан, то библиотека скорее всего должна быть в определенной папке, указанной при компиляции openssl. Папку можно увидеть в строке ENGINESDIR, выполнив команду
Код:
openssl version -a
Также обратите внимание, что id модуля (выделен жирным) должен совпадать в соответствующей секции, чтобы модуль "увиделся", например:
[engine_section]
gostengy = gost_section

[gost_section]
engine_id = gostengy
dynamic_path = (укажите свой)
default_algorithms = ALL
Цитата:
Как то можно gostengy скачать отдельно и доустановить руками?
В теме FAQ в самом конце ссылка, где можно скачать пакеты с разными версиями библиотеки. Во избежание проблем правильнее поставить нужные пакеты, но если нет пакета для нужной ОС, то распаковать пакет и вытащить библиотеку тоже вариант.

Если обе команды были выполнены на одной системе, то библиотека у Вас уже есть (второй openssl ее загрузил).

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

thanks 1 пользователь поблагодарил two_oceans за этот пост.
Yuzhanin35 оставлено 27.04.2021(UTC)
Offline Yuzhanin35  
#370 Оставлено : 27 апреля 2021 г. 17:11:26(UTC)
Yuzhanin35

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

Группы: Участники
Зарегистрирован: 21.04.2021(UTC)
Сообщений: 9
Откуда: RU

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Подскажите пожалуйста, как можно настроить аутентификацию по сертификату в nginx c CryptoPro?

Как я понимаю, для этого нужен клиентский сертификат и в конфигах nginx изменить следующие строки:

# ssl_client_certificate путь где лежит клиентский серт
# ssl_verify_client on;


Каким образом клиентский сертификат нужно установить на nginx?

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

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