Долгое время использовал для внутренних систем
XCA.
По-хорошему все устраивает: удобно управлять иерархией CA (корневой и несколько промежуточных), генерировать и хранить ключи и сертификаты одновременно, есть шаблоны.
Основной минус: нет возможности автоматически генерировать и выгружать CRL и нет поддержки OCSP.
Известная альтернатива --
EJBCA -- не порадовала. Во-первых, есть проблемы со сборкой под docker. Во-вторых, насколько я понял, EJBCA ориентирована на поддержку CA, пользователи которого -- "внешние" по отношению к CA. Т.е. пользователь сам генерирует ключ и запрос, затем отдельное лицо его подписывает и пользователь сам забирает сертификат. Это правильно с т.з. безопасности и подходит для банков и т.п. систем, но для для простого сценария (админ/безопасник в одном лице) это добавляет много лишних телодвижений --
не удобно.
django-pki не собирается под свежими версиями django, ковырять пока желания нет.
r509 еще не пробовал, с ruby ни разу дела не имел.
pki.io видел, пробовал. Не подходит: там другая идеология (быстрое развертывание большой инфраструктуры, OCSP им
не нужен).
Последнее, что пробовал --
CFSSL. Вроде бы работает, пришлось добавить пару python-скриптов для упрощения генерации сертификатов, удалось настроить сервер CA отдельно от рабочей станции. Мало документации, нет описания конфигурационных файлов/профилей. Осталось непонятной ситуация с промежуточными CA. OCSP есть, но для его использования необходимо отдельным запросом подписывать OCSP-response и складывать в файл на сервере. Генерация CRL реализована, но требует index file со списком серийников, а серийники есть только в SQLITE базе данных (тут отдельная песня: тип поля bytea, но sqlite упорно выводит его как float).
Вот и возник вопрос: кто-нибудь использует EJBCA и/или CFSSL для подобной внутренней CA? Или еще что-нибудь? Удалось ли запустить автоматическое обновление CRL и/или OCSP-responder?