Добрый день!
Прошу помочь в решении проблемы.
Имею 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, что бы при проксировании запросов передавался сертификат.
Спасибо заранее!