Skip to content
Stas Ukolov edited this page Oct 12, 2017 · 9 revisions

Собственный центр сертификации (CA)

Собственная инфраструктура работы с открытыми ключами (PKI: Public Key Infrastructure) была в целом уже создана.

Ранее она использовалась для всех целей, то есть:

  • Создания сертификатов Веб-, почтовых и прочих серверов
  • Создания пользовательских сертификатов (преимущественно для ЭЦП в СЭД "Директум")

Серверные сертификаты теперь генерируются при помощи Let's Encrypt, поэтому собственная PKI в основном занимается поддержанием пользовательских сертификатов.

Общая информация

Собственная PKI работает на сервере ekb.ru.

Создан пользователь uxm-ca, вся работа может выполняться только с его правами (su - uxm-ca).

ПО PKI располагается в директории /home/uxmCA и имеет одну точку входа /home/uxmCA/CA.pl.

Вся информация хранится в БД SQLite в файле /home/uxmCA/db/pub/pub.db, секретные ключи хранятся в БД /home/uxmCA/db/sec/sec.db.

Доступен Web-интерфейс просмотра содержимого БД PKI.

Программный код PKI и вспомогательные данные хранятся в репозитории

Внесённые изменения

  • Работа PKI была делегирована отдельному пользователю в целях безопасности
  • Повышен минимальный размер ключа:
    • 2048 бит для клиентских сертификатов
    • 4096 бит для служебных сертификатов
  • Алгоритм подписи изменён с устаревшего SHA1 на SHA256
  • Созданы новые центры сертификации (CA)
    • Корневой центр сертификации
    • Центр сертификации пользователей
  • Мелкие правки

Генерация серверных сертификатов

Вероятно, более не будет производиться. Сертификаты имеет смысл получать в Let's Encrypt.

При необходимости это всё ещё возможно путём запуска скрипта /home/uxmCA/CA.pl с правами пользователя uxm-ca, однако описание выходит за рамки этого документа.

Генерация пользовательских сертификатов

По-прежнему выполняется в Веб-интерфейсе на вкладке ЭЦП конкретного пользователя. Для этого нужно быть включённым (прямо или косвенно) в группу CA@uxm.

Возможно дать пользователям право генерировать сертификат себе самому на вкладке ЭЦП. Для этого нужно поправить 0 на 1 в файле /var/www/ssl:ekb.ru/omz/me/lib/pki.init.php.

Сертификат и его секретный ключ генерируются на стороне сервера и размещаются в БД SQLite, находящуюся на сервере.

При желании каждый пользователь может скачать свой сертификат на вкладке ЭЦП. Однако, это не является рекомендуемым способом.

Официальный способ установки пользовательского сертификата на его машину - запуск специально написанной программы iPFX.exe (исходный код) с правами пользователя. Удобнее всего это делать в скрипте автозапуска пользователя, после чего достаточно однократно выйти из системы и снова зайти в неё. После этого запуск iPFX.exe можно убрать из скрипта автозапуска до следущего раза. Эта информация доступна на сайте.