Re: Проблема с SSl

2018-10-22 Пенетрантность Maxim Dounin
Hello!

On Mon, Oct 22, 2018 at 06:24:09PM +0300, Иван Мишин wrote:

> если проблема в утилите openssl то почему servicen nignx reload исцеляет
> систему?

Потому что OpenSSL - это библиотека, которую использует nginx.  А 
баги - часто проявляются не сразу, а только после определённого 
времени работы процесса.

Наиболее простой пример ошибки, которая начинает проявляться 
только после некоторого времени работы процесса - отсутствующая 
инициализация выделенной памяти в 0, когда таковая инициализация 
нужна.  Сразу после запуска процесса проблемы не будет - так как 
свежеполученные от системы страницы всё равно проинициализированы 
в 0.  Однако со временем часть аллокаций начинает получать память 
не из системы, а из ранее освобождённых аллокаций в том же 
процессе - и там уже будут не обязательно нули, и могут начать 
вылезать ошибки.

> На том же сервере работает еще и apache (очевидно с тем же openssl) и он
> такой проблемы не имеет

Баги имеют свойство проявляться по разному в зависимости от того, 
что именно и как используется.  Даже если у вас рядом стоит Apache 
с той же нагрузкой, теми же GOST-шифрами и тоже с загрузкой ключей 
через engine (что сомнительно, потому что Apache, AFAIK, так 
просто не умеет) - это говорит лишь о том, что проблема почему-то 
не проявляется в Apache, но проявляется в nginx.  О природе 
проблемы это говорит приблизительно ничего.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проблема с SSl

2018-10-22 Пенетрантность Иван Мишин
если проблема в утилите openssl то почему servicen nignx reload исцеляет
систему?
На том же сервере работает еще и apache (очевидно с тем же openssl) и он
такой проблемы не имеет

пн, 22 окт. 2018 г. в 14:18, Maxim Dounin :

> Hello!
>
> On Fri, Oct 19, 2018 at 05:55:28PM +0300, Иван Мишин wrote:
>
> > Есть такой конфиг:
> >
> >  server {
> > > listen   443 ssl;
> > > server_name  test.ru;
> > >
> > > ssl_certificate /etc/nginx/include/test/lich-2012-srv.pem;
> > > ssl_certificate_key
> > > 'engine:gostengy:s38g83e8ae2e2183b3624f880eb1ca12ggcdfebf';
> > > ssl_verify_client off;
> > > ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> > > ssl_ciphers GOST2012-GOST8912:GOST2001-GOST89:HIGH;
> > > ssl_prefer_server_ciphers  on;
> > >   location / {
> > > proxy_set_header X-Real-IP $remote_addr;
> > > proxy_set_header X-Forwarded-For
> > > $proxy_add_x_forwarded_for;
> > > proxy_hide_header  Host;
> > > proxy_set_header X-NginX-Proxy true;
> > > proxy_set_header Host test.loc;
> > > proxy_pass http://test.loc;
> > > proxy_redirect off;
> > > client_max_body_size 300M;
> > > sendfile on;
> > > send_timeout 300s;
> > > }
> > > }
> >
> >
> > Со временем сервер либо перестает работать совсем, либо работает через
> раз.
> > при этом в логах вот такая ошибка:
> >
> > > [crit] 28474#28474: *401018 SSL_do_handshake() failed (SSL:
> > > error:8001B035:lib(128):gng_keyhandle_getset:GNG_ERR_EXPORT_IMPORT
> > > error:1419D093:SSL routines:tls_process_cke_gost:decryption failed)
> while
> > > SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
> >
> > Просьба помочь с решением проблемы.
>
> Судя по диагностики, ваши проблемы - где-то в GOST engine.  Если
> по условиям задачи её можно выкинуть - очевидным решением будет
> выкинуть.  Если выкинуть нельзя - попробуйте поиграться с версиями
> OpenSSL'я и GOST engine, а равно попробуйте грузить ключ из файла,
> а не через engine.  Если ничего из этого не поможет - стоит
> стучаться непосредственно к ребятам, занимающимся оной GOST
> engine.
>
> --
> Maxim Dounin
> http://mdounin.ru/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проблема с SSl

2018-10-22 Пенетрантность Maxim Dounin
Hello!

On Fri, Oct 19, 2018 at 05:55:28PM +0300, Иван Мишин wrote:

> Есть такой конфиг:
> 
>  server {
> > listen   443 ssl;
> > server_name  test.ru;
> >
> > ssl_certificate /etc/nginx/include/test/lich-2012-srv.pem;
> > ssl_certificate_key
> > 'engine:gostengy:s38g83e8ae2e2183b3624f880eb1ca12ggcdfebf';
> > ssl_verify_client off;
> > ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> > ssl_ciphers GOST2012-GOST8912:GOST2001-GOST89:HIGH;
> > ssl_prefer_server_ciphers  on;
> >   location / {
> > proxy_set_header X-Real-IP $remote_addr;
> > proxy_set_header X-Forwarded-For
> > $proxy_add_x_forwarded_for;
> > proxy_hide_header  Host;
> > proxy_set_header X-NginX-Proxy true;
> > proxy_set_header Host test.loc;
> > proxy_pass http://test.loc;
> > proxy_redirect off;
> > client_max_body_size 300M;
> > sendfile on;
> > send_timeout 300s;
> > }
> > }
> 
> 
> Со временем сервер либо перестает работать совсем, либо работает через раз.
> при этом в логах вот такая ошибка:
> 
> > [crit] 28474#28474: *401018 SSL_do_handshake() failed (SSL:
> > error:8001B035:lib(128):gng_keyhandle_getset:GNG_ERR_EXPORT_IMPORT
> > error:1419D093:SSL routines:tls_process_cke_gost:decryption failed) while
> > SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
> 
> Просьба помочь с решением проблемы.

Судя по диагностики, ваши проблемы - где-то в GOST engine.  Если 
по условиям задачи её можно выкинуть - очевидным решением будет 
выкинуть.  Если выкинуть нельзя - попробуйте поиграться с версиями 
OpenSSL'я и GOST engine, а равно попробуйте грузить ключ из файла, 
а не через engine.  Если ничего из этого не поможет - стоит 
стучаться непосредственно к ребятам, занимающимся оной GOST 
engine.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru