Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.05.2016(UTC) Сообщений: 112
|
Установлено: Windows Server 2008 Standart SP2 КриптоПро CSP версия продукта 3.9.8227 (ядра СКЗИ 3.9.8001 КС2) nginx 1.10.1 Некоторое время всё работало, даже клиентская авторизация. Сегодня вернулся к проекту, браузеры не открывают страницу. В логах nginx следующее: SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.2.75, server: 0.0.0.0:443Запуск "C:\Program Files\Crypto Pro\CSP\csptest" -tlsc -server llo.yarcloud.ru -port 443 выдаёт вот это: **** Error 0x80090326 returned by InitializeSecurityContext (2) An error occurred in running the program. .\WebClient.c:528:Error performing handshake. Error number 0x80090326 (2148074278). Получено непредвиденное сообщение или оно имеет неправильный формат.
Total: SYS: 0,047 sec USR: 0,000 sec UTC: 0,059 sec [ErrorCode: 0x80090326] Ещё смущает то что в некоторых мануалах (http://www.cryptopro.ru/forum2/default.aspx?g=posts&m=57216#post57216 ) требуется указывать ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;а в некоторых: ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUMКак правильно? В чём смысл ошибки no shared cipher? Вложения: nginx.conf.txt (2kb) загружен 4 раз(а). error.log.txt (33kb) загружен 1 раз(а).access.log пустой
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,451 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 32 раз Поблагодарили: 418 раз в 309 постах
|
Автор: mihmig SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.2.75, server: 0.0.0.0:443 Смысл "no shared cipher", является звоночком использования TLS 1.2 ( НЕВЕРНОЕ УТВЕРЖДЕНИЕ) Судя по вашему конфигу, как такое происходит -- неясно, возможно неверный конфиг прислали? Попробуйте nginx-1.10.2-gost-147098.9 , мы добавили в него поддержку TLS 1.2 из коробки Отредактировано пользователем 14 марта 2017 г. 15:39:29(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.05.2016(UTC) Сообщений: 112
|
Обновил nginx до указанной версии. В nginx.conf изменил строки: ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
CPFox 45.1.2 заработал Но Chromium 55.0.2883.75 и Internet Explorer 11 нет, в логах по-прежнему:
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.9.91, server: 0.0.0.0:443
И всё-таки, что именно означает фраза no shared cipher? Меня смущает, что раньше всё работало а потом перестало...
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,451 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 32 раз Поблагодарили: 418 раз в 309 постах
|
Автор: mihmig CPFox 45.1.2 заработал Но Chromium 55.0.2883.75 и Internet Explorer 11 нет, в логах по-прежнему:
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.9.91, server: 0.0.0.0:443
И всё-таки, что именно означает фраза no shared cipher? Меня смущает, что раньше всё работало а потом перестало... "no shared cipher" -- сообщение от openssl в рамках TLS 1.2 ( НЕВЕРНОЕ УТВЕРЖДЕНИЕ), в котором сообщается о невозможности построить пересечение алгоритмов подписи ( sigalgs) между клиентом и сервером. Так как поддержка TLS 1.2 в CSP у нас появилась осенью, значит либо CSP обновлён, либо CSP функционирует неверно (в следствие обновления Windows например до не поддерживаемой версии или обновления). Также можно посмотреть на настройки TLS в браузере Internet Explorer (Свойства браузера > Дополнительно) и попробовать вернуть значения по умолчанию. Как правило, проблемы с "no shared cipher", проще всего решить на стороне сервера так: "ssl_protocols TLSv1;" (хотя по вашим утверждениям этот способ почему-то не заработал). Последняя на текущий момент сертифицированная версия CSP ветки 3.9 -- это КриптоПро CSP 3.9.8495, возможно обновиться лучшее решение. Отредактировано пользователем 14 марта 2017 г. 15:39:15(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.05.2016(UTC) Сообщений: 112
|
Хм, обновление КриптоПро CSP до версии 3.9.8495 помогло с такими настройками ssl_protocols TLSv1; ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
все браузеры заработали (в Internet Explorer SSL 2.0, SSl 3.0, TLS 1.2 "галочки" сняты, TLS 1.1, TLS 1.0 - установлены) Да, Windows Update в промежутке между последним использованием сервера "отрабатывал". Отключать Windows Update нельзя - ведь мы же тут все в "контексте безопасности".
Получается - система (nginx + авторизация по ГОСТ-сертификату) "статически неустойчива" - т.е. может в любой момент развалиться? Что делать если такая ситуация повторится после окончания цикла поддержки КриптоПро CSP 3.9?
Также непонятно как всё-таки правильно указывать: ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89; или ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUM в чём разница?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,451 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 32 раз Поблагодарили: 418 раз в 309 постах
|
Автор: mihmig Получается - система (nginx + авторизация по ГОСТ-сертификату) "статически неустойчива" - т.е. может в любой момент развалиться? Ещё раз уточняем, что "no shared cipher" это ошибка в рамках TLS 1.2 ( НЕВЕРНОЕ УТВЕРЖДЕНИЕ), и если на сервере стоит явное использование только TLS 1.0, то совершенно непонятно, как сервер мог ответить в режиме TLS 1.2. Продукты nginx и openssl стабильны, и в этой части ошибок уже давно не находят. Поэтому, если хотите точно выяснить в чём была причина, необходимо точно воспроизвести и проверить все ваши утверждения ещё раз. Ситуация с TLS 1.0 в отечественной криптографии стабильна и должна работать в текущем состоянии до 2018 года (когда сертификаты с алгоритмами 2001 года станут запрещёнными к использованию). Автор: mihmig Также непонятно как всё-таки правильно указывать: ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89; или ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUM в чём разница? При работе с ГОСТ сертификатом, у сервера на openssl круг сужается до единственного варианта: "GOST2001-GOST89-GOST89". Поэтому ssl_ciphers можно не указывать. Или можете указать "ssl_ciphers GOST2001-GOST89-GOST89;" для спокойствия. Отредактировано пользователем 14 марта 2017 г. 15:38:54(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.01.2017(UTC) Сообщений: 30 Откуда: moscow Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте! Позвольте поднять данную тему, столкнулся с этой же проблемой. Код:SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking
Хост: https://csp.nodomain.me/ОС:Код:root@csp:~# uname -a
Linux csp 2.6.32-042stab120.11 #1 SMP Wed Nov 16 12:05:45 MSK 2016 x86_64 GNU/Linux
Установленные пакетыКод:
root@csp:~# dpkg -l | grep csp
ii cprocsp-cpopenssl-gost-64 4.0.0-4 amd64 OpenSSL capi_gost engine. Build 9842.
ii cprocsp-curl-64 4.0.0-4 amd64 CryptoPro Curl shared library and binaris. Build 9842.
ii cprocsp-pki-cades 2.0.0-1 amd64 CryptoPro PKI
ii lsb-cprocsp-base 4.0.0-4 all CryptoPro CSP library. Build 9842.
ii lsb-cprocsp-capilite-64 4.0.0-4 amd64 CryptoAPI lite. Build 9842.
ii lsb-cprocsp-devel 5.0.0-5 all CryptoPro CSP static libraries and headers. Build 10579.
ii lsb-cprocsp-kc1-64 4.0.0-4 amd64 CryptoPro CSP library. Build 9842.
ii lsb-cprocsp-kc2-64 4.0.0-4 amd64 CryptoPro CSP KC2. Build 9842.
ii lsb-cprocsp-rdr-64 4.0.0-4 amd64 CryptoPro CSP readers. Build 9842.
OpenSSL:Код:
root@csp:~# openssl version
OpenSSL 1.0.1t 3 May 2016
root@csp:~# openssl engine
(rsax) RSAX engine support
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gost_capi) CryptoPro ENGINE GOST CAPI ($Revision: 147820 $)
root@csp:~# openssl ciphers | tr ":" "\n" | grep GOST
GOST2001-GOST89-GOST89
nginx собран из репо https://github.com/deemru/nginxКод:
root@csp:~# nginx -V
nginx version: nginx/1.10.3
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1t 3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --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 --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' --with-ld-opt=-Wl,-z,relro
Конфиг nginxКод:
ssl on;
ssl_certificate "/root/csp.nodomain.me.cer.pem";
ssl_certificate_key engine:gost_capi:csp.nodomain.me;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1;
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
ssl_prefer_server_ciphers on;
/root/csp.nodomain.me.cer.pem - получил путем экспорта Код:certmgr -export -store uMy -dest /root/csp.nodomain.me.ce
openssl x509 -inform DER -outform PEM -in /root/csp.nodomain.me.cer -out /root/csp.nodomain.me.cer.pem
Получил тествый сертификат, установил его. Код:
root@csp:~# certmgr -list -store uMy
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
=============================================================================
1-------
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : CN=csp.nodomain.me
Serial : 0x12001A5E4D29EB37E386A8F9E60000001A5E4D
SHA1 Hash : 0x561a7e5770c761f6f0bad92a212fbef8a6f79729
SubjKeyID : 08fe318b2a34a2824d98d7a0d488b43a6b01ce55
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 09/03/2017 19:29:22 UTC
Not valid after : 09/06/2017 19:39:22 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\cont.000\021E
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
=============================================================================
[ErrorCode: 0x00000000]
Подпись файл проходит успешно. Помогите, пожалуйста, разобраться
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,451 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 32 раз Поблагодарили: 418 раз в 309 постах
|
Автор: stufford Позвольте поднять данную тему, столкнулся с этой же проблемой. Код:SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking
<...> Конфиг nginxКод:
<...>
ssl_protocols TLSv1;
<...>
Помогите, пожалуйста, разобраться Эта ошибка из кода TLS версии 1.2, которая не должна возникать при "ssl_protocols TLSv1;" ( НЕВЕРНОЕ УТВЕРЖДЕНИЕ) Нигде не напутали? Если нет — ждём инструкцию как воспроизвести. Отредактировано пользователем 14 марта 2017 г. 15:38:22(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.01.2017(UTC) Сообщений: 30 Откуда: moscow Сказал(а) «Спасибо»: 2 раз
|
Автор: pd Нигде не напутали? Если нет — ждём инструкцию как воспроизвести.
Нет, не напутал. Попробуйте: Код:openssl s_client -connect csp.nodomain.me:443 -tls1
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,451 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 32 раз Поблагодарили: 418 раз в 309 постах
|
Автор: stufford Нет, не напутал. Так точно, путаница с нашей стороны. Ошибка "no shared cipher" гораздо проще, она означает, что пользователь при попытке соединиться с сервером работающим по ГОСТ не предоставил сюиту поддерживающую ГОСТ. Проще говоря, в вашем клиенте нет поддержки ГОСТ или она не задействована. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close