2013-02-11 3 views
1

Мой вопрос касается директивы nginx «proxy_pass».аутентификация клиента при использовании nginx proxy_pass

У меня есть http-сервер, и мне нужно перенаправить запросы с помощью https. Я использую следующий оператор: proxy_pass https://secure.server В wirehark я вижу, что есть подтверждение SSL, но клиент (nginx proxy_pass https :) не отправил сертификат на запрос сертификата SSL сервера. Проверка сертификата клиента необходима сервером. Как заставить proxy_pass отправлять сертификат клиента при использовании https? Ниже часть файла конфигурации nginx.conf:

server { 
    listen 8888; 
    server_name  _; 
    error_page 405 =200 $uri; 
    ssl_certificate  /usr/local/cert.pem; 
    ssl_certificate_key /usr/local/cert.pem           
    ssl_client_certificate /usr/local/ca.cer;  

    location ~ /uri/(.+) { 

        proxy_pass https://secure.server; 
        break; 
      } 

    } 
+0

Я знаю, что это старо, но разве вы когда-нибудь нашли ответ на это? – CasualDemon

ответ

0

Вам необходимо включить SSL проверку сертификата клиента.

Добавить это под другими конфигурациями SSL:

ssl_verify_client on; 

See more information here.

+1

Я уже это сделал. Другая сторона (сервер) запрашивает у клиента сертификат. Клиент (который действует как proxy_pass) имеет сертификат с запрошенными отличительными именами, но каким-то образом он не отправляет этот сертификат. – Slava

0

Я ищу того же раствор, а также.

Я нашел SEnginx, который имеет модуль под названием «Proxy HTTPS Client Certificate». Из описания кажется, что это должно допускать клиентские сертификаты, но я не мог заставить его работать для меня. Бэкэнд-сервер просто не запрашивал у клиента сертификат.

Ниже приведена ссылка на SEnginx.

Также: Here - это возможное объяснение того, почему это может быть невозможно.

Смежные вопросы