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

Уведомление

Icon
Error

39 Страницы«<56789>»
Опции
К последнему сообщению К первому непрочитанному
Offline Pechenko Vladimir  
#61 Оставлено : 4 мая 2018 г. 0:20:08(UTC)
Pechenko Vladimir

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте!

Попробовал установить Nginx через скрипт на Debian 8 с КриптоПро CSP 4.0 R2.
Скрипт отработал без ошибок.
Тестовые сертификаты генерил по инструкции из данной темы.
Работать по ГОСТу Nginx отказывается(все подробности ниже).
В чем может быть причина?

ОС:
Код:
# lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 8.10 (jessie)
Release:	8.10
Codename:	jessie

# uname -a
Linux Test 3.16.0-6-amd64 #1 SMP Debian 3.16.56-1 (2018-04-28) x86_64 GNU/Linux


Установленные пакеты:
Код:
# dpkg-query --list | grep csp
ii  cprocsp-compat-debian          1.0.0-1                            all          CryptoPro CSP compatibility extension for non-LSB Debian/Ubuntu
ii  cprocsp-cpopenssl-110-64       5.0.10976-5                        amd64        OpenSSL-110. Build 10976.
ii  cprocsp-cpopenssl-110-base     5.0.10976-5                        all          Openssl-110 common Build 10976.
ii  cprocsp-cpopenssl-110-devel    5.0.10976-5                        all          Openssl-110 devel Build 10976.
ii  cprocsp-cpopenssl-110-gost-64  5.0.10976-5                        amd64        OpenSSL-110 gostengy engine. Build 10976.
ii  cprocsp-curl-64                4.0.0-4                            amd64        CryptoPro Curl shared library and binaris. Build 9842.
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-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:
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl version
OpenSSL 1.1.0g  2 Nov 2017

# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 168568 $)


Nginx:
Код:
# nginx -V
nginx version: nginx/1.12.2
built by gcc 4.9.2 (Debian 4.9.2-10+deb8u1) 
built with OpenSSL 1.1.0g  2 Nov 2017
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 --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='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'


Код:
# cat /etc/nginx/nginx.conf

user  nginx;
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      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    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:GOST2001-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;
        }
    }

}


Код:
# ps aux | grep nginx
root     20337  0.0  0.1  79320  3588 ?        Ss   23:56   0:00 nginx: master process nginx
nginx    20338  0.0  0.2  79752  4760 ?        S    23:56   0:00 nginx: worker process



Сертификат:
Код:
# /opt/cprocsp/bin/amd64/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=srvtest
Serial              : 0x12002866DBBE475AAAF64E29270000002866DB
SHA1 Hash           : 0x9d635852b15360ae8a621c9c6c496067eaf20b57
SubjKeyID           : 9908a0374cc804ad282d3ebb0a8093900aae34c7
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 (1024 bits)
Not valid before    : 03/05/2018  15:54:42 UTC
Not valid after     : 03/08/2018  16:04:42 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
=============================================================================

[ErrorCode: 0x00000000]


Запуск SSL/TLS сервера через openssl:
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_server -engine gostengy -keyform ENGINE -key srvtest -cert /etc/nginx/srvtest.pem
engine "gostengy" set.
Using default temp DH parameters
ACCEPT


Подключение к серверу через openssl:
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -connect localhost:4433
CONNECTED(00000005)
depth=0 CN = srvtest
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = srvtest
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/CN=srvtest
   i:/emailAddress=support@cryptopro.ru/C=RU/L=Moscow/O=CRYPTO-PRO LLC/CN=CRYPTO-PRO Test Center 2
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDSDCCAvegAwIBAgITEgAoZtu+R1qq9k4pJwAAAChm2zAIBgYqhQMCAgMwfzEj
MCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJV
MQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYD
VQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTgwNTAzMTU1NDQyWhcN
MTgwODAzMTYwNDQyWjASMRAwDgYDVQQDDAdzcnZ0ZXN0MIGqMCEGCCqFAwcBAQEC
MBUGCSqFAwcBAgECAQYIKoUDBwEBAgMDgYQABIGAh/pFVUDUwGzk+erKL7+zGf9q
Fau8RzXuxxSMebSknxLMWT1nQauSbs1I7zZPv+wAoqBnIMfN4fhg514rNqMeQOhQ
U0PMJMR+bJCU0y3dekoP8KXc0ksOQQBY7eHhvPFSB04Wv7dVoNjVvJd8cZRHPlAX
fxj4Ew9Bi65aBA1rvPajggFtMIIBaTATBgNVHSUEDDAKBggrBgEFBQcDATALBgNV
HQ8EBAMCBDAwHQYDVR0OBBYEFJkIoDdMyAStKC0+uwqAk5AKrjTHMB8GA1UdIwQY
MBaAFBUxfLCNGt5m1xWcSVKXFyS5AXqDMFkGA1UdHwRSMFAwTqBMoEqGSGh0dHA6
Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L0NlcnRFbnJvbGwvQ1JZUFRPLVBSTyUyMFRl
c3QlMjBDZW50ZXIlMjAyLmNybDCBqQYIKwYBBQUHAQEEgZwwgZkwYQYIKwYBBQUH
MAKGVWh0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L0NlcnRFbnJvbGwvdGVzdC1j
YS0yMDE0X0NSWVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMi5jcnQwNAYIKwYB
BQUHMAGGKGh0dHA6Ly90ZXN0Y2EuY3J5cHRvcHJvLnJ1L29jc3Avb2NzcC5zcmYw
CAYGKoUDAgIDA0EAywPl1xvfTfv5KGkZKgrgupTlpMviaRj4diGv0sQiBL4+rKBx
OMm15WsFZ/3jmpS0MFMz7BeINy+hr9SY5D1V4g==
-----END CERTIFICATE-----
subject=/CN=srvtest
issuer=/emailAddress=support@cryptopro.ru/C=RU/L=Moscow/O=CRYPTO-PRO LLC/CN=CRYPTO-PRO Test Center 2
---
No client certificate CA names sent
---
SSL handshake has read 1132 bytes and written 482 bytes
Verification error: unable to verify the first certificate
---
New, TLSv1.0, Cipher is GOST2012-GOST8912-GOST8912
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : GOST2012-GOST8912-GOST8912
    Session-ID: 9B8C2C4707D82DD556B1103AB72FC71994068F25DB7431E8D8C1473C02F88798
    Session-ID-ctx: 
    Master-Key: 57B68DB073312AC3D09ADC3EC18F3EECCD498415DBB38FB40FA1FC118822AB4C1ED73E62680C3ECAF719FE2CC8E391D1
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - 9a 62 e2 90 ad b0 20 e3-bc aa 76 3d 9c 69 c9 8f   .b.... ...v=.i..
    0010 - 08 81 0c 5c df e7 f5 d0-de d3 3e 89 fb 7f d4 e4   ...\......>.....
    0020 - b0 5c c4 56 9f b1 af b3-21 ad e9 ea 52 1c a9 5e   .\.V....!...R..^
    0030 - 11 6f 5e ca f2 db d7 bc-cc 0f 24 c6 eb 89 26 9e   .o^.......$...&.
    0040 - 3d a5 30 a7 62 0d 40 07-70 55 e5 aa 84 fe f9 b0   =.0.b.@.pU......
    0050 - ee 7e 10 2a 7d 94 b5 e6-76 9c c6 97 53 c1 85 bf   .~.*}...v...S...
    0060 - fb a4 ef e7 f4 40 a5 68-50 46 c5 28 e4 61 ca 21   .....@.hPF.(.a.!
    0070 - 1e 7b 00 c0 6f 7a 2d 24-ed 81 a7 5d 4a d2 b2 87   .{..oz-$...]J...
    0080 - b5 7d bc 9c 26 5f e9 7d-7f 27 d8 c5 31 5a 90 ff   .}..&_.}.'..1Z..
    0090 - 53 80 f8 1b e3 5a d4 a5-4d 35 b2 d0 3d 20 90 f0   S....Z..M5..= ..

    Start Time: 1525381459
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
    Extended master secret: no
---


Подключение к Nginx(RSA):
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -cipher 'ECDHE-RSA-AES256-GCM-SHA384' -connect localhost:443
CONNECTED(00000005)
depth=0 CN = srvtestRSA, C = RU
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = srvtestRSA, C = RU
verify return:1
---
Certificate chain
 0 s:/CN=srvtestRSA/C=RU
   i:/CN=srvtestRSA/C=RU
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDFzCCAf+gAwIBAgIJANcV19wU/yx/MA0GCSqGSIb3DQEBCwUAMCIxEzARBgNV
BAMMCnNydnRlc3RSU0ExCzAJBgNVBAYTAlJVMB4XDTE4MDUwMzE2MTU0NVoXDTE4
MDYwMjE2MTU0NVowIjETMBEGA1UEAwwKc3J2dGVzdFJTQTELMAkGA1UEBhMCUlUw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChI+cADCY1jQGqeX8V3vyR
LsGX+z6DB3s+CxDNRojXe7iL8GyFX9Q4fjZzptBqKy+AAjN+kvBqV3+S8fWI6z2W
CLy57PE236Q5jkDi06KOLIGiaVIr3KLO+26QIaICvuxCEwvSiU8lSJFPOoKQ2aU6
sCElgm1eS9tbXpSz6H4IUDoPOYxhfM/lVM/nYuT0Q+BefCmqL1r41oEm7feyGmqQ
2A/nY3JI0R5SDZ7OqeOApAQ7cTGcYoI71N66/uk4B1oK21QJY4jm76YdmV8EeX8F
CvZ1UsGxGT1VXouTcMuuFPGuLrKbu1uGO/yhhkWd4y7ar3fI82GuyDkwUUMaW/9n
AgMBAAGjUDBOMB0GA1UdDgQWBBToOte8FJG/CXNj7ZtdJpi0Kz653jAfBgNVHSME
GDAWgBToOte8FJG/CXNj7ZtdJpi0Kz653jAMBgNVHRMEBTADAQH/MA0GCSqGSIb3
DQEBCwUAA4IBAQBfuuvtMCMnYNmuAKg9cHoB0qnXpteQH9GtUvsPuBD+xAh92z2V
7PJiUpeSGiZOur5u6Jx64qcmlokt6ohKASPUaBsdKmFtIVKFJZDHC8JEzDH4rjNR
KYGVspSqkmESD02BXJn0MNs1hxus/72mqaeRrADEZck1HQp5vsM/7t/YSHR1kw98
lZGTH7JMbnMkk2cELtPFSR5fcv2rOMGTpZSUP9ngslv1a9MFo2ahcOMyUoxzgbp+
YNbISlz7qngdRQA4YD9j2qhrX//uKuWNKVLBEIWfzm3YYUVIa5rLfT703FrCQZj6
jTdCPwpTDs2QzmaDtqGdRc8DNRp0iKdh/k/J
-----END CERTIFICATE-----
subject=/CN=srvtestRSA/C=RU
issuer=/CN=srvtestRSA/C=RU
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1432 bytes and written 223 bytes
Verification error: self signed certificate
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 6CE50C6CEE11E842264BEBA93C9C6925978151BE6D3456C2D38339B1E8D6D5DC
    Session-ID-ctx: 
    Master-Key: 83A69CC6F133F0EA589027C982ACF20FB2D58C9F6B6EBF39526E3A2F79CF1C64957139DF9593D4829375477B9467D11A
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 87 3a c4 ae 4d 16 b4 65-05 ac 38 2e fe 05 cb da   .:..M..e..8.....
    0010 - 23 5a cf 50 0d 61 10 24-1f 3f 29 82 78 3f 4f 3d   #Z.P.a.$.?).x?O=
    0020 - d9 84 b0 62 23 c1 f3 74-b9 8d 5a a3 ce c0 26 c9   ...b#..t..Z...&.
    0030 - 8f 7c 77 7b 8c bb 84 ab-32 7d e8 65 48 15 c4 8c   .|w{....2}.eH...
    0040 - fe a4 ea 01 60 32 9f f6-c3 0c ef c5 5f 57 ee a3   ....`2......_W..
    0050 - 31 c3 1e 1c 81 e6 fe 02-08 dd 6b 76 e3 91 58 cd   1.........kv..X.
    0060 - 94 1e 0f ad 62 44 99 01-f1 c3 7e e6 87 e9 ed 36   ....bD....~....6
    0070 - 0c 89 48 f9 a4 cc dd 6f-59 55 aa 94 f0 30 3c e7   ..H....oYU...0<.
    0080 - bb 87 60 57 ca 02 0a c4-33 08 23 d7 2f 43 56 e6   ..`W....3.#./CV.
    0090 - 34 e5 ed 0a 7e 19 ad a9-f4 5d 63 a7 b0 7d b7 8a   4...~....]c..}..
    00a0 - ec 21 c7 d1 7c e5 67 60-d8 6f fe 49 75 c8 90 c6   .!..|.g`.o.Iu...

    Start Time: 1525381592
    Timeout   : 7200 (sec)
    Verify return code: 18 (self signed certificate)
    Extended master secret: no
---



Подключение к Nginx(ГОСТ):
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -cipher 'GOST2012-GOST8912-GOST8912' -connect localhost:443
CONNECTED(00000005)
140506783860480:error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:ssl/record/rec_layer_s3.c:1399:SSL alert number 80
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 108 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1525381640
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---


Ошибка (/var/log/nginx/error.log):
Код:
2018/05/03 23:39:50 [crit] 20087#20087: *4 SSL_do_handshake() failed (SSL: error:8000601C:lib(128):gng_hash_init_common:CryptCreateHash error:14125044:SSL routines:ssl3_digest_cached_records:internal error) while SSL handshaking, client: 127.0.0.1, server: 0.0.0.0:443

Offline Дмитрий Пичулин  
#62 Оставлено : 4 мая 2018 г. 0:36:02(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Pechenko Vladimir Перейти к цитате
Попробовал установить Nginx через скрипт на Debian 8 с КриптоПро CSP 4.0 R2.
Скрипт отработал без ошибок.
Тестовые сертификаты генерил по инструкции из данной темы.
Работать по ГОСТу Nginx отказывается(все подробности ниже).
В чем может быть причина?

...
Код:
# cat /etc/nginx/nginx.conf

user  nginx;
...


Код:
# ps aux | grep nginx
root     20337  0.0  0.1  79320  3588 ?        Ss   23:56   0:00 nginx: master process nginx
nginx    20338  0.0  0.2  79752  4760 ?        S    23:56   0:00 nginx: worker process


...

Ошибка (/var/log/nginx/error.log):
Код:
2018/05/03 23:39:50 [crit] 20087#20087: *4 SSL_do_handshake() failed (SSL: error:8000601C:lib(128):gng_hash_init_common:CryptCreateHash error:14125044:SSL routines:ssl3_digest_cached_records:internal error) while SSL handshaking, client: 127.0.0.1, server: 0.0.0.0:443



Чистый debian и скрипты дают подобную ошибку? Есть сомнения, что вы всё сделали скриптами на чистой системе.

Обычно такая ошибка возникает при работе КС1.

Также при использовании директивы "user nginx", пользователь nginx должен иметь доступ ко всем ключам.

Отредактировано пользователем 4 мая 2018 г. 0:36:44(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline Pechenko Vladimir  
#63 Оставлено : 4 мая 2018 г. 9:20:56(UTC)
Pechenko Vladimir

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Цитата:
Чистый debian и скрипты дают подобную ошибку? Есть сомнения, что вы всё сделали скриптами на чистой системе.
Обычно такая ошибка возникает при работе КС1.
Также при использовании директивы "user nginx", пользователь nginx должен иметь доступ ко всем ключам.

Хорошо, пробуем с нуля.
Установил Debian 8.
После установки базовой системы, скриптами установил Nginx и ключи(ГОСТ, RSA):

Код:
apt update
apt install curl git build-essential linux-headers-$(uname -r)
wget https://raw.githubusercontent.com/fullincome/scripts/master/nginx-gost/install-nginx.sh && chmod +x install-nginx.sh
./install-nginx.sh --csp=linux-amd64_deb.tgz
wget https://raw.githubusercontent.com/fullincome/scripts/master/nginx-gost/install-certs.sh && chmod +x install-certs.sh
./install-certs.sh
/usr/sbin/nginx


После чего имеем:
Код:
# dpkg-query --list | grep csp
ii  cprocsp-compat-debian          1.0.0-1                            all          CryptoPro CSP compatibility extension for non-LSB Debian/Ubuntu
ii  cprocsp-cpopenssl-110-64       5.0.10976-5                        amd64        OpenSSL-110. Build 10976.
ii  cprocsp-cpopenssl-110-base     5.0.10976-5                        all          Openssl-110 common Build 10976.
ii  cprocsp-cpopenssl-110-devel    5.0.10976-5                        all          Openssl-110 devel Build 10976.
ii  cprocsp-cpopenssl-110-gost-64  5.0.10976-5                        amd64        OpenSSL-110 gostengy engine. Build 10976.
ii  cprocsp-curl-64                4.0.0-4                            amd64        CryptoPro Curl shared library and binaris. Build 9842.
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-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.

# /opt/cprocsp/bin/amd64/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=srvtest
Serial              : 0x1200286B0A1015FA45BECE6520000000286B0A
SHA1 Hash           : 0x71f4c23f6053065506de95e4bf4bed81ba2465cf
SubjKeyID           : e58d8918c0f95b88e42e5061c9f138c9b0694fb6
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 (1024 bits)
Not valid before    : 04/05/2018  05:35:58 UTC
Not valid after     : 04/08/2018  05:45:58 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\ngxtest.000\0923
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC2 Strong CSP
Provider Info       : ProvType: 81, 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]


# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl engine
(dynamic) Dynamic engine loading support
(gostengy) CryptoPro GostEngy ($Revision: 168568 $)

# /usr/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 4.9.2 (Debian 4.9.2-10+deb8u1) 
built with OpenSSL 1.1.0g  2 Nov 2017
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 --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='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

# ps aux | grep nginx
root     16291  0.0  0.1  79316  3656 ?        Ss   08:52   0:00 nginx: master process nginx
root     16292  0.0  0.3  79844  7568 ?        S    08:52   0:00 nginx: worker process


Пробуем подключаться по ГОСТу:
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -cipher 'GOST2012-GOST8912-GOST8912' -connect localhost:443
CONNECTED(00000005)
139719297152768:error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:ssl/record/rec_layer_s3.c:1399:SSL alert number 80
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 108 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1525414169
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---

# cat /var/log/nginx/error.log
2018/05/04 09:09:29 [crit] 16292#16292: *6 SSL_do_handshake() failed (SSL: error:8000601C:lib(128):gng_hash_init_common:CryptCreateHash error:14125044:SSL routines:ssl3_digest_cached_records:internal error) while SSL handshaking, client: 127.0.0.1, server: 0.0.0.0:443


Ничего не изменилось.
Nginx теперь работает под root'ом.
thanks 1 пользователь поблагодарил Pechenko Vladimir за этот пост.
pd оставлено 08.05.2018(UTC)
Offline geniymax  
#64 Оставлено : 8 мая 2018 г. 10:11:23(UTC)
geniymax

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

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

Добрый день!
Прошу помочь в решении проблемы.
Имею nginx собранный с openssl c поддержкой ГОСТ.
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.1.0g-dev xx XXX xxxx
TLS SNI support enabled

Nginx необходимо использовать для проксирования запросов на внешний сервис с использованием ГОСТ шифрования.
Конфигурация nginx следующая:
server {
<------>listen 6443;
<------>server_name 172.18.141.22;
<------>access_log<---->/var/log/nginx/diadoc.access.log main;
access_log<---->/var/log/nginx/diadoc.access_upstream.log<----->upstream;
error_log<----->/var/log/nginx/diadoc.error.log debug;
<------>#ssl_certificate /etc/nginx/ssl/cert.crt;
<------>#ssl_certificate_key /etc/nginx/ssl/cert.key;
<------>#ssl on;
<------>#ssl_session_cache builtin:1000 shared:SSL:10m;
<------>#ssl_protocols<>TLSv1 TLSv1.1 TLSv1.2;
<------>#ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DES";
<------>error_page<---->500 502 503 504><------>/50x.html;
<------>location / {
<------>#rewrite ^$ $1/ last;
<------>proxy_pass https://test.kontur-ca.ru;
<------>proxy_ssl_server_name<->on;
<------>proxy_ssl_certificate /var/opt/cprocsp/keys/root/bcs_test.cer;
<------>proxy_ssl_certificate_key "engine:gostengy:bcs test certificate";
<------>proxy_ssl_trusted_certificate /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem;
<------>proxy_ssl_ciphers GOST2001-GOST89-GOST89:HIGH;
<------>proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
<------>proxy_ssl_verify on;
<------>proxy_ssl_verify_depth 1;
<------>#proxy_pass https://46.17.202.91:443/;
<------>#proxy_pass https://test.kontur-ca.ru;
<------>#proxy_redirect http:// https://;
<------>#proxy_set_header<----->Host test.kontur-ca.ru;
<------>#proxy_set_header<----->X-Real-IP $remote_addr;
<------>proxy_set_header<------>X-Forwarded-For $proxy_add_x_forwarded_for;
<------> }
<------>}

При отправке запроса через nginx получаю ошибку:
curl -v -0 'http://172.18.141.22:6443/CC/CertificateInfo/FindForms?Phone=9996667733&Inn=012558018349'
* About to connect() to 172.18.141.22 port 6443 (#0)
* Trying 172.18.141.22...
* Connected to 172.18.141.22 (172.18.141.22) port 6443 (#0)
> GET /CC/CertificateInfo/FindForms?Phone=9996667733&Inn=012558018349 HTTP/1.0
> User-Agent: curl/7.29.0
> Host: 172.18.141.22:6443
> Accept: */*
>
< HTTP/1.1 502 Bad Gateway
< Server: nginx
< Date: Tue, 08 May 2018 06:49:13 GMT
< Content-Type: text/html
< Content-Length: 166
< Connection: close
<
<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>
* Closing connection 0

Связался с коллегами СКБ-контур, получил от них ответ, что запрос они видят, но сертификат не передается.
Прошу подсказать, как все таки правильно сконфигурировать nginx, что бы при проксировании запросов передавался сертификат.
Спасибо заранее!
Offline Максим Коллегин  
#65 Оставлено : 8 мая 2018 г. 14:46:35(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,395
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 718 раз в 622 постах
Я бы порекомендовал использовать КриптоПро NGate, подобный сценарий мы закладывали.

Отредактировано пользователем 8 мая 2018 г. 15:23:24(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline Дмитрий Пичулин  
#66 Оставлено : 8 мая 2018 г. 15:36:35(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Pechenko Vladimir Перейти к цитате
Цитата:
Чистый debian и скрипты дают подобную ошибку? Есть сомнения, что вы всё сделали скриптами на чистой системе.
Обычно такая ошибка возникает при работе КС1.
Также при использовании директивы "user nginx", пользователь nginx должен иметь доступ ко всем ключам.

Хорошо, пробуем с нуля.

...

Ничего не изменилось.
Nginx теперь работает под root'ом.

Так точно, где-то закралась ошибка на уровне fork, будем разбираться.

Сейчас можем предложить использовать экспериментальный функционал отложенной загрузки ключей, который позволяет работать nginx в режиме КС1:
  1. Создаём файл:
    Код:
    echo 1> /var/opt/cprocsp/tmp/gostengy_delay

  2. Прописываем в конфиге nginx вместо "engine:gostengy:certname" > "engine:gostengy:delay:03:certname", где 01, 02 и 03 это ключи 2001, 2012-256 и 2012-512 соответственно.




Знания в базе знаний, поддержка в техподдержке
Offline Дмитрий Пичулин  
#67 Оставлено : 8 мая 2018 г. 15:39:08(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: geniymax Перейти к цитате
Связался с коллегами СКБ-контур, получил от них ответ, что запрос они видят, но сертификат не передается.

Как понять "сертификат не передается"?

Знания в базе знаний, поддержка в техподдержке
Offline Pechenko Vladimir  
#68 Оставлено : 8 мая 2018 г. 16:39:23(UTC)
Pechenko Vladimir

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Автор: pd Перейти к цитате
Автор: Pechenko Vladimir Перейти к цитате
Цитата:
Чистый debian и скрипты дают подобную ошибку? Есть сомнения, что вы всё сделали скриптами на чистой системе.
Обычно такая ошибка возникает при работе КС1.
Также при использовании директивы "user nginx", пользователь nginx должен иметь доступ ко всем ключам.

Хорошо, пробуем с нуля.

...

Ничего не изменилось.
Nginx теперь работает под root'ом.

Так точно, где-то закралась ошибка на уровне fork, будем разбираться.


Как выявите причину, отпишитесь, пожалуйста, в этой теме.

Автор: pd Перейти к цитате

Сейчас можем предложить использовать экспериментальный функционал отложенной загрузки ключей, который позволяет работать nginx в режиме КС1:
  1. Создаём файл:
    Код:
    echo 1> /var/opt/cprocsp/tmp/gostengy_delay

  2. Прописываем в конфиге nginx вместо "engine:gostengy:certname" > "engine:gostengy:delay:03:certname", где 01, 02 и 03 это ключи 2001, 2012-256 и 2012-512 соответственно.



Работает, спасибо.
Погоняю тесты пока в таком режиме.
Offline Дмитрий Пичулин  
#69 Оставлено : 8 мая 2018 г. 18:07:21(UTC)
pd

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

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

Сказал(а) «Спасибо»: 35 раз
Поблагодарили: 474 раз в 338 постах
Автор: Pechenko Vladimir Перейти к цитате
Как выявите причину, отпишитесь, пожалуйста, в этой теме.

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

Актуальная рабочая версия: https://update.cryptopro...t/nginx-gost/bin/174535/

Скрипты обновлены в соответствии с исправлениями: https://github.com/fulli...s/tree/master/nginx-gost

Спасибо за наводку.
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил pd за этот пост.
Pechenko Vladimir оставлено 09.05.2018(UTC)
Offline Pechenko Vladimir  
#70 Оставлено : 9 мая 2018 г. 1:00:49(UTC)
Pechenko Vladimir

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
Автор: pd Перейти к цитате
Автор: Pechenko Vladimir Перейти к цитате
Как выявите причину, отпишитесь, пожалуйста, в этой теме.

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

Актуальная рабочая версия: https://update.cryptopro...t/nginx-gost/bin/174535/

Скрипты обновлены в соответствии с исправлениями: https://github.com/fulli...s/tree/master/nginx-gost

Спасибо за наводку.


Да, теперь работает. Спасибо!
С ключом ГОСТ Р 34.10-2012 проблем нет.

Сгенерил ключ ГОСТ Р 34.10-2001:
Код:
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=nginx_test_2001
Serial              : 0x12002891FBD1C07946D0787A0A0000002891FB
SHA1 Hash           : 0x9340a473698cedfc440ca5a8b0e5c3995429a6ce
SubjKeyID           : 68d3fff53316f43df4b519e29b68b003e50c2945
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 08/05/2018  21:08:32 UTC
Not valid after     : 08/08/2018  21:18:32 UTC
PrivateKey Link     : Yes                 
Container           : HDIMAGE\\nginxtes.000\010B
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC2 CSP
Provider Info       : ProvType: 80, 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


Если поднимать SSL\TLS через утилиту openssl, то при подключении ошибок нет:
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_server -engine gostengy -keyform ENGINE -key nginx_test_2001 -cert nginxtest2001.pem
...
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -cipher 'GOST2001-GOST89-GOST89' -connect localhost:4433
...


Nginx стартует без ошибок, но по ГОСТу не работает:
Код:
# /opt/cprocsp/cp-openssl-1.1.0/bin/amd64/openssl s_client -cipher 'GOST2001-GOST89-GOST89' -connect localhost:443
CONNECTED(00000004)
140244304541440:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1407:SSL alert number 40
....


В лог(/var/log/nginx/error.log) при этом ничего не пишет.

Если попытаться из браузера(IE), в логе появляется ошибка:
Код:
2018/05/09 00:44:03 [crit] 28730#28730: *7 SSL_do_handshake() failed (SSL: error:1417D18C:SSL routines:tls_process_client_hello:version too low) while SSL handshaking, client: 172.28.1.2, server: 0.0.0.0:443
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
39 Страницы«<56789>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.