Добрый день!
В предыдущей части мы успешно создали свой удостоверяющий центр. Чем вообще для наших целей он может быть полезен?
С помощью локального удостоверяющего центра мы можем производить выдачу сертификатов, а также осуществлять проверку подписи по этим сертификатам.
При выдаче сертификата пользователю удостоверяющий центр использует специальный запрос на выдачу сертификата Pkcs#10, имеющий формат файла ‘.csr’. Этот запрос содержит закодированную последовательность, которую удостоверяющий центр знает, как правильно распарсить. Запрос содержит как публичный ключ пользователя, так и данные для создания сертификата (ассоциативный массив с данными о пользователе).
Каким образом получить запрос на выдачу сертификата, мы рассмотрим в следующей статье, а в этой хочу привести основные команды удостоверяющего центра, которые помогут нам выполнить нашу задачу на стороне бекенда.
Итак, вначале мы должны создать сертификат. Для этого используем команду:
ca — команда openSSL, которая относится к удостоверяющему центру,
-batch — отменяет запросы подтверждения при формировании сертификата.
user.csr — запрос на создание сертификата (файл формата .csr).
user.crt — сертификат (полученный результат команды).
Для того, чтобы эта команда отработала, удостоверяющий центр должен быть настроен в точности так, как описано в предыдущей части статьи. В противном случае придется дополнительно указывать место расположения корневого сертификата удостоверяющего центра.
Команда проверки сертификата:
cms — команда openSSL, которая используется для подписи, проверки, шифрования данных и других криптографических операций с помощью openSSL.
-verify — в данном случае осуществляем проверку сертификата.
authenticate.cms — файл, содержащий подписанные данные сертификатом, который был выдан предыдущей командой.
-inform PEM — используется формат PEM.
-CAfile /Users/……/demoCA/ca.crt — путь к корневому сертификату. (без этого у меня команда не сработала, хоть и прописаны пути к ca.crt в файле openssl.cfg)
-out data.file — расшифрованные данные отправляю в файл data.file.
Алгоритм применения удостоверяющего центра на стороне бекенда следующий:
Для реализации этих алгоритмов можно использовать любой язык программирования, который используют для написания бекенда.
В следующей статье мы будем разбираться с тем, как работать с Ретокен плагином.
Спасибо за внимание!
В предыдущей части мы успешно создали свой удостоверяющий центр. Чем вообще для наших целей он может быть полезен?
С помощью локального удостоверяющего центра мы можем производить выдачу сертификатов, а также осуществлять проверку подписи по этим сертификатам.
При выдаче сертификата пользователю удостоверяющий центр использует специальный запрос на выдачу сертификата 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.file
cms — команда 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 и отправляем его на клиент.
- Получаем запрос на создание сертификата и сохраняем его в файл user.csr.
- Авторизация пользователя:
- Получаем подписанные данные с клиента и сохраняем их в файл authenticate.cms.
- Сохраняем вторую команду данной статьи в файл расширением .bat или .cmd. Запускаем этот файл из кода, предварительно сохранив подписанные данные с сервера в authenticate.cms. Получаем файл с расшифрованными данными data.file.
- Читаем data.file и проверяем эти данные на валидность. Что именно проверить описано в первой статье. Если данные валидны, то авторизация пользователя считается успешной.
Для реализации этих алгоритмов можно использовать любой язык программирования, который используют для написания бекенда.
В следующей статье мы будем разбираться с тем, как работать с Ретокен плагином.
Спасибо за внимание!