Добър ден!
Успешно създадохме свой удостоверяващ център. Каква полза може да ни донесе той?
С помощта на локалния удостоверяващ център можем да издадем сертификати, а също така и да извървим проверка на подписите по тези сертификати.
При издаването на сертификат на потребителя, удостоверяващият център използва специална заявка за издаване на сертификат Pkcs#10, която има формат на файл ‘.csr’. Тази заявка съдържа кодирана последователност, която удостоверяващият център знае как да обработи. Заявката съдържа както публичния ключ на потребителя, така и данни за създаване на сертификата (асоциативен масив с данни за потребителя).
Как да получим заявка за издаване на сертификат, ще разгледаме в следващата статия, а в тази искам да представя основните команди на удостоверяващия център, които ще ни помогнат да извършим нашата задача на бекенда.
И така, първо трябва да създадем сертификат. За целта използваме командата:
openssl ca -batch -in user.csr -out user.crt ca — команда на openSSL, която се отнася до удостоверяващия център,
-batch — отменя исканията за потвърждение при формироването на сертификата.
user.csr — заявка за създаване на сертификат (файл с формат .csr).
user.crt — сертификат (резултат от командата).
За да заработи тази команда, удостоверяващият център трябва да бъде настроен точно така, както е описано . В противен случай ще трябва допълнително да посочите местоположението на корения сертификат на удостоверяващия център.
Команда за проверка на сертификата:
openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.filecms — команда на openSSL, която се използва за подписване, проверка, криптиране на данни и други криптографски операции с openSSL.
-verify — в този случай извършваме проверка на сертификата.
authenticate.cms — файл, съдържащ подписани данни с сертификат, издаден от предната команда.
-inform PEM — използва формат PEM.
-CAfile /Users/……/demoCA/ca.crt — път до коренния сертификат. (без това, командата не сработи, въпреки че пътищата до ca.crt са записани в openssl.cfg)
-out data.file — разшифрованите данни изпращам в файл data.file.
Алгоритъмът на работа на удостоверяващия център на бекенда е следният:
- Регистрация на потребителя:
- Получаваме заявка за създаване на сертификат и я запазваме в файл user.csr.
- Запазваме първата команда от тази статия в файл с разширение .bat или .cmd. Стартираме този файл от кода, след предварителното запазване на заявката за създаване на сертификат във файл user.csr. Получаваме файл с сертификат user.crt.
- Четем файла user.crt и го изпращаме на клиента.
- Авторизация на потребителя:
- Получаваме подписаните данни от клиента и ги запазваме във файл authenticate.cms.
- Запазваме втората команда от тази статия в файл с разширение .bat или .cmd. Стартираме този файл от кода, след предварителното запазване на подписаните данни от сървъра в authenticate.cms. Получаваме файл с разшифровани данни data.file.
- Четем data.file и проверяваме тези данни за валидност. Какво точно да проверим е описано . Ако данните са валидни, авторизацията на потребителя се счита за успешна.
За реализиране на тези алгоритми може да се използва всеки програмен език, който се използва за написване на бекенда.
В следващата статия ще се запознаем с начина на работа с плъгина Ретокен.
Благодаря за вниманието!
Източник: habr.com
