ПРОЕКТЫ 


  АРХИВ 


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: SSL clientAuth



On Wed, 30 Aug 2006, Andrey Y. Ostanovsky wrote:

Igor Sysoev wrote:
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.
Это я что-то не так делаю, или где-то ошибка в коде?

Насколько я понимаю, -addtrust не делает сертификат рутовым, а проверка
должна делаться до рута.

Совершенно правильно понимаешь.

Тогда было бы неплохо где-то в мануале ( ngx_http_ssl_module.html)
указать, что в файле сертификатов для авторизации клиента должна лежать
вся цепочка. И про verify_depth развернуть более подробно, что-то типа:
0 - клиентский self signed сертификат
1 - клиентский сертификат, выпущенный на основе self signed  CA
2 - клиентский сертификат, выпущенный на основе сертификата,
подписанного третьей стороной (для авторизации требуется наличие всей
цепочки авторизующих сертификатов).

Вот это неправильное понимание.

verify_depth указывает максимальную длину цепочки сертификатов от конечного до корня. Реальная длина цепочки может быть меньше.

Поэтому:

0 - доверять только самоподписанным сертификатам

1 - доверять самоподписанным сертификатам и подписанным доверяемым СА

2 - доверять
    - самоподписанным сертификатам
    - подписанным доверяем СА
    - подписанным подчинённым СА, сертификат которого выпущен доверяемым СА

И так далее...


Хотя, есть у меня подозрение, что при отсутствии промежуточного
сертификата - авторизация пройдет. Вечером попробую проверить.

Не должно - проверка цепочки сертификатов остановится на отсутствующем сертификате промежуточного CA.


--
Best regards,
Andrew Kopeyko <kaa@xxxxxxxx>
http://www.zvuki.ru/ sysadmin




 




Copyright © Lexa Software, 1996-2009.