ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Переменная сертификата и Authorization header.



Hello!

On Tue, Feb 14, 2012 at 09:29:39PM -0500, devox wrote:

> Спасибо! Прописал:
> 
> server {
>         listen 192.168.2.38:8080;
>         server_name  nginx;
> ....
> 
> location / {
>                 proxy_set_header   Host             $host;
>                 proxy_set_header   X-Real-IP        $remote_addr;
>                 proxy_set_header   X-Forwarded-For 
> $proxy_add_x_forwarded_for;
>                 proxy_pass         http://192.168.20.38:8081;
>                 proxy_set_header   Authorization "Basic $auth_base";
> }
> 
> server {
>         listen 192.168.2.38:8081;
>         server_name  nginx1;
> ....
>          location / {
>                 root   /usr/share/nginx/test;
>                 index  index.html;
>                 auth_basic "Closed Area";
>                 auth_basic_user_file /etc/nginx/htpasswd;
> }
> 
> base.conf
> 
> map $ssl_client_serial $auth_base {
> serial1   bmdpbng6Cg==;
> serial2   bmdpbng6bmdpbngK;
> }
> 
> 
> Но авторизацию не проходит,
> запрашивает авторизацию, но даже если
> вручную вводишь логин и пароль, она не
> проходит.

То, что при явно указанном proxy_set_header Authorization вручную 
авторизация не проходит - это нормально, вы же переопределяете 
заголовок запроса, и от клиента ничего до бекенда не доходит.

> Лог выкидывает это:
> 2012/02/15 06:10:16 [error] 28769#0: *7 no user/password was provided
> for basic authentication, client: 192.168.2.38, server: , request: "GET
> / HTTP/1.0", host: "192.168.2.38"
> 
> Убираю "proxy_set_header   Authorization "Basic $auth_base";",
> Проверка сертификата проходит
> корректно, на бек-энде запрашивает
> авторизацию, вводишь данные  - все в
> порядке. Такое впечатление, что он не
> видит, что отдается в заголовке, либо
> отдается некорректно.

Ну таки посмотрите, что отдаётся - и в nginx'е есть debug log, и 
tcpdump'ом посмотреть недолго.  Скорее всего вы неправильно 
написали serial'ы в map'е, нужно строковое совпадение с тем, что 
выдаёт переменная $ssl_client_serial.

Ну и в пиведённый base64 у вас лишние переводы строк затесались, 
но от них сообщение будет другое.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.