ПРОЕКТЫ 


  АРХИВ 


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]

SSL clientAuth



Hello, All!

Опять я со своим непорочным... Тьфу! С авторизацией юзера по SSL сертификату. Итак, имеется selfsigned "корневой" сертификат организации. Если мы им подписываем сертификат сотрудника и помещаем сертификат в соответствующую директорию nginx - все работает замечательно. Теперь хочется, чтобы, например, начальник отдела, имея "сертификат отдела", подписанный "корневым сертификатом организации", мог сам подписывать ключи своим сотрудникам. Вроде бы не слишком нахальное желание?:)

Делаем, генерим, подписываем, отдаем сертификат клиенту.

Теперь, если мы в файле ssl_client_certificate оставляем только один сертификат отдела - авторизация с ssl_verify_depth=1 не проходит с диагностикой:

client SSL certificate verify error: (27:certificate not trusted)

Из man verify извлекаем ценное знание:

27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted
the root CA is not marked as trusted for the specified purpose.

Маркируем имеющийся сертификат отдела как trusted:
openssl x509 -in department.pem -addtrust clientAuth -addtrust serverAuth > cacert.pem

Смотрим на результат:

# openssl x509 -noout -text -in cacert.pem
.....
Trusted Uses:
TLS Web Client Authentication, TLS Web Server Authentication
No Rejected Uses.

Вроде бы, все должно работать? Ан, нет.
Пока не изменишь ssl_verify_depth на "2" и не добавишь в cacert.pem сертификат организации - в логе абсолютно та же самая ругань на untrusted certificate.

Это я что-то не так делаю, или где-то ошибка в коде?

--
Best regards, Andrey
St.Petersburg



 




Copyright © Lexa Software, 1996-2009.