Nginx 1.9.5 (linux Centos7) -> MS IIS 8.5 Поэтому я пытаюсь использовать nginx в качестве обратного прокси-сервера для IIS, где требуется проверка подлинности сертификата клиента на уровне IIS. nginx: 443 - >> IIS: 443 + аутентификация сертификата клиента.
пример прокси-сервера местоположения также здесь прокомментированы команды, которые я пробую.
location ^~ /test/ {
#proxy_buffering off;
#proxy_http_version 1.0;
#proxy_request_buffering off;
#proxy_set_header Connection "Keep-Alive";
#proxy_set_header X-SSL-CERT $ssl_client_cert;
# proxy_ssl_name domain.lv;
#proxy_ssl_trusted_certificate /etc/nginx/ssl/root/CA.pem;
#proxy_ssl_verify_depth 2;
proxy_set_header HOST domain.com;
proxy_ssl_certificate /etc/nginx/ssl/test.pem;
proxy_ssl_certificate_key /etc/nginx/ssl/test_key.pem;
proxy_ssl_verify off;
proxy_pass https://10.2.4.101/;
}
У IIS все просто.
- создать новый сайт.
- импортировать сертификат CA в доверенный корень.
- установить требуемый сертификат ssl.
Проверьте, что я получаю:
- Требуется напрямую браузер для сертификата клиента IIS - работал.
- Требуется сертификат Nginx для другого клиента nginx - работал.
- Nginx для игнорирования сертификата клиента IIS - работал
- Требуется сертификат клиента Nginx для IIS или принимается - НЕ работает
ОШИБКА: сторона Nginx: * 4622 тайм-аут восходящего потока (110: тайм-аут соединения) при чтении заголовка ответа со стороны восходящего потока IIS: 500 0 64 119971
Надеюсь, кто-нибудь знает, почему?
РЕДАКТИРОВАТЬ 1. также попробуйте с другого сервера с nginx 1.8 ничего не помогло ..
proxy_ssl_verify off;
proxy_ssl_certificate /etc/nginx/ssl/test/test.pem;
proxy_ssl_certificate_key /etc/nginx/ssl/test/test_key.pem;
proxy_pass https://domain.com;
2. попробуйте то же самое с apache 2.4, все работало с
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLProxyMachineCertificateFile /etc/httpd/ssl/test.pem
ProxyPass "/test" "https://domain.com"
Может что то с пересогласованием ssl в nginx ???