Статус: Участник
Группы: Участники
Зарегистрирован: 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
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,559 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 522 раз в 368 постах
|
Автор: 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)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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'ом.
|
 1 пользователь поблагодарил Pechenko Vladimir за этот пост.
|
pd оставлено 08.05.2018(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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, что бы при проксировании запросов передавался сертификат. Спасибо заранее!
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,412  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 723 раз в 626 постах
|
Я бы порекомендовал использовать КриптоПро NGate, подобный сценарий мы закладывали. Отредактировано пользователем 8 мая 2018 г. 15:23:24(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,559 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 522 раз в 368 постах
|
Автор: Pechenko Vladimir  Цитата:Чистый debian и скрипты дают подобную ошибку? Есть сомнения, что вы всё сделали скриптами на чистой системе. Обычно такая ошибка возникает при работе КС1. Также при использовании директивы "user nginx", пользователь nginx должен иметь доступ ко всем ключам. Хорошо, пробуем с нуля. ... Ничего не изменилось. Nginx теперь работает под root'ом. Так точно, где-то закралась ошибка на уровне fork, будем разбираться. Сейчас можем предложить использовать экспериментальный функционал отложенной загрузки ключей, который позволяет работать nginx в режиме КС1: - Создаём файл:
Код:echo 1> /var/opt/cprocsp/tmp/gostengy_delay
- Прописываем в конфиге nginx вместо "engine:gostengy:certname" > "engine:gostengy:delay:03:certname", где 01, 02 и 03 это ключи 2001, 2012-256 и 2012-512 соответственно.
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,559 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 522 раз в 368 постах
|
Автор: geniymax  Связался с коллегами СКБ-контур, получил от них ответ, что запрос они видят, но сертификат не передается. Как понять "сертификат не передается"? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.07.2016(UTC) Сообщений: 11  Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
Автор: pd  Автор: Pechenko Vladimir  Цитата:Чистый debian и скрипты дают подобную ошибку? Есть сомнения, что вы всё сделали скриптами на чистой системе. Обычно такая ошибка возникает при работе КС1. Также при использовании директивы "user nginx", пользователь nginx должен иметь доступ ко всем ключам. Хорошо, пробуем с нуля. ... Ничего не изменилось. Nginx теперь работает под root'ом. Так точно, где-то закралась ошибка на уровне fork, будем разбираться. Как выявите причину, отпишитесь, пожалуйста, в этой теме. Автор: pd  Сейчас можем предложить использовать экспериментальный функционал отложенной загрузки ключей, который позволяет работать nginx в режиме КС1: - Создаём файл:
Код:echo 1> /var/opt/cprocsp/tmp/gostengy_delay
- Прописываем в конфиге nginx вместо "engine:gostengy:certname" > "engine:gostengy:delay:03:certname", где 01, 02 и 03 это ключи 2001, 2012-256 и 2012-512 соответственно.
Работает, спасибо. Погоняю тесты пока в таком режиме.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC) Сообщений: 1,559 Откуда: КРИПТО-ПРО
Сказал(а) «Спасибо»: 38 раз Поблагодарили: 522 раз в 368 постах
|
Автор: Pechenko Vladimir  Как выявите причину, отпишитесь, пожалуйста, в этой теме. Причина была в освобождении глобального контекста провайдера из мастер процесса nginx. При борьбе с утечками памяти мы использовали статические классы хранители объектов, которые сворачивал мастер процесс после порождения рабочих процессов форком. Это исправлено. Актуальная рабочая версия: https://update.cryptopro.ru/support/nginx-gost/bin/174535/ Скрипты обновлены в соответствии с исправлениями: https://github.com/fullincome/scripts/tree/master/nginx-gost Спасибо за наводку. |
|
 1 пользователь поблагодарил pd за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.07.2016(UTC) Сообщений: 11  Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
Автор: pd  Автор: Pechenko Vladimir  Как выявите причину, отпишитесь, пожалуйста, в этой теме. Причина была в освобождении глобального контекста провайдера из мастер процесса nginx. При борьбе с утечками памяти мы использовали статические классы хранители объектов, которые сворачивал мастер процесс после порождения рабочих процессов форком. Это исправлено. Актуальная рабочая версия: https://update.cryptopro.ru/support/nginx-gost/bin/174535/ Скрипты обновлены в соответствии с исправлениями: https://github.com/fullincome/scripts/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
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close