>А как создавать цепочки подписанных сертификатов в openssl? > >Создал собственный корневой CA (company.ru) >Выдал и подписал им сертификаты для почтового сервера (mail.company.ru) и radius сервера >(radius.company.ru). > >Создал клиентские сертификаты client1,2,3 для клиентов, для работы с почтовым сервером, подписал >их тоже корневым сертификатом CA (company.ru). > >Все замечательно работает. > >Но возник вопрос. >В песпроводной сети используется WPA шифрование через EAP/TLS с использованием radius сервера. >Аутентификация клиента - по сертификату. >И тут оказалось, что клиентские сертификаты, выданные для почты, отлично подходят для >аутентификации на радиус сервере, т.е. любой клиент, которому выдан почтовый клиенсткий >сертификат, может работать и с беспроводной сетью. Вероятно, он сможет работать >и с веб-сервером, если там тоже настроить аутентификацию посредством сертификатов и >тд. > >Другими словами, одного сертификата клиента хватит для всего. Это хорошо, но если >нужно разграничить доступ клиентам (например, всем можно пользоваться своей почтой, но >только избранным - подключаться к беспроводной сети). Что тут делать? > >Пришло в голову, что нужно подписывать клиентские сертификаты не корневым (CA, company.ru), >а соответствующими сертификатами серверов - mail.company.ru, radius.company.ru (а они, в свою >очередь, уже были подписаны корневым центром CA). Теоретически, если я правильно >понимаю идеологию сертификатов, в этом случае сертификат, выданный для работы с >почтой, не подойдет для аутентификации на радиус-сервере. > >К сожалению, попытка подписать клиенсткий сертификат серверными не удалась. >Точнее, подпись, как таковая, успешно проходит, я получаю файл сертификата: >------ >Certificate: > Data: > Version: 3 (0x2) > Serial Number: 6 (0x6) > > Signature Algorithm: md5WithRSAEncryption > Issuer: C=RU, ST=Euro, L=Moscow, >O=company.ru, OU=testlab, CN=radius.company.ru/emailAddress=eightn@company.ru > Validity > >Not Before: Jun 6 12:22:02 2005 GMT > >Not After : Jun 6 12:22:02 2007 GMT > Subject: C=RU, ST=Euro, L=Moscow, >O=company.ru, OU=testlab, CN=client3/emailAddress=eightn@company.ru > Subject Public Key Info: > > >Public Key Algorithm: rsaEncryption > >------ > >но вот при попытке проверки такого сертификата > >openssl verify -CAfile company.ru-ca.crt client3.crt >выдается примерно следующее: >client3.crt: /C=RU/ST=Euro/L=Moscow/O=company.ru/OU=testlab/CN=client3/emailAddress=eightn@company.ru >error 20 at 0 depth lookup:unable to get local issuer certificate >(вне зависимости от того, что ставить в CAfile - корневой сертификат (company.ru-ca.crt) >или сертификат radius-сервера (radius.company.ru.crt), который в свою очередь, подписан корневым. >Указание пути -CApath к сертификатам тоже не помогает (выдается та же ошибка). > >Та же ошибка выдается и при перечислении сертификатов цепочки: >openssl verify -CAfile company.ru-ca.crt radius.company.ru.crt client3.crt > >radius.company.ru.crt: OK >client3.crt: /C=RU/ST=Euro/L=Moscow/O=company.ru/OU=testlab/CN=client3/emailAddress=eightn@company.ru >error 20 at 0 depth lookup:unable to get local issuer certificate можно в при генирации сертификата указать зачем нужен сертификат то еть счем ему работать- првалеьно назначение сертификата
|