Проброс SSL-аутентификации на backend

Бондарец Иван bondarets at gmail.com
Sat Sep 5 13:36:22 MSD 2009


Добрый день!
Есть стандартная схема:
Интернет -> nginx --> backend (Apache либо WebSphere)
nginx сейчас терминирует на себе ssl и проксирует на backend.
Возникла задачка аутентифицировать пользователей на некоторых разделах сайта
на backend'e при помощи сертификатов. Можно ли настроить nginx на такой
режим работы? В моем понимании, на backend'е нужно поднять ssl (с более
слабым ключом, например) и настроить авторизацию по сертификатам, это я
сделал:
SSLEngine on
SSLCipherSuite
ALL:!ADH:!DH:!EDH:!KRB5:!IDEA:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/apache.key
SSLProtocol +SSLv3 +TLSv1
SSLVerifyClient require
SSLCACertificateFile /path/to/ca.crt

 Далее в конфиге nginx пишу:
    server {
        listen       443;
        server_name  test1;
        ssl                  on;
        ssl_certificate      /etc/apache2/ssl.crt/apache.crt;
        ssl_certificate_key  /etc/apache2/ssl.key/apache.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers
ALL:!ADH:!DH:!EDH:!KRB5:!IDEA:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL;
        ssl_prefer_server_ciphers   on;
        location / {
        proxy_pass   https://1.2.3.4:443;
            }

       }

Проверяю аутентификацию при обращении непосредственно к backend'у - на
IE6,7,8 и Safari 4.0.2 работает, на FF 3.5.2, Opera 10, Chrome - не
работает, пишет что-то вроде этого:
SSL-узлу не удалось договориться о приемлемом наборе параметров
безопасности.
(Код ошибки: ssl_error_handshake_failure_alert)

Пробую через nginx, соответственно тоже не работает, в логе nginx пишет:
[error] 14221#0: *106 SSL_do_handshake() failed (SSL: error:14094410:SSL
routines:SSL3_READ_BYTES:sslv3 alert handshake failure) while SSL
handshaking to upstream

Как это поправить? И вообще реализуема ли задачка, описанная в начале? Т.е.
аутентификация пользователей именно на backend'е?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090905/c234d925/attachment.html>


More information about the nginx-ru mailing list