Об этом проекте

CFSSL (швейцарский нож Cloudflare для PKI/TLS) — это инструментарий с открытым исходным кодом, предназначенный для управления инфраструктурой открытых ключей (PKI) и безопасностью транспортного уровня (TLS). Он работает как инструмент командной строки (CLI), так и как HTTP API-сервер, позволяя пользователям эффективно подписывать, проверять и объединять TLS-сертификаты. Ключевые компоненты: - cfssl: Основная утилита CLI для выполнения различных операций PKI, таких как подписание сертификатов, генерация ключей, создание пакетов и запуск API-сервера. - multirootca: Сервер центра сертификации, способный использовать несколько ключей подписи, предлагающий конечные точки для подписания, аутентифицированного подписания и получения информации. - mkbundle: Утилита для создания пакетов корневых и промежуточных сертификатов путем проверки на отзыв и истечение срока действия. - cfssljson: Вспомогательный инструмент, который преобразует вывод JSON от CFSSL в отдельные файлы PEM для ключей, сертификатов, CSR и пакетов. Основные возможности: 1. Подписание сертификатов: Пользователи могут подписывать запросы на подпись сертификатов (CSR) с помощью локального или удаленного центра сертификации. Инструмент позволяет переопределять имена хостов и указывать детали субъекта через JSON-конфигурацию. 2. Объединение сертификатов: CFSSL может создавать цепочки сертификатов с различными вариантами (оптимальный, повсеместный, принудительный) на основе криптографической стойкости и совместимости с браузерами. Поддерживается получение сертификатов непосредственно с доменов. 3. Генерация ключей и CSR: Генерация закрытых ключей и соответствующих CSR или самоподписанных сертификатов с использованием JSON-шаблонов, определяющих алгоритмы ключей, размеры и информацию о субъекте. 4. Поддержка OCSP: Генерация OCSP-ответов для выданных сертификатов и их обслуживание через OCSP-ответчик. 5. API-сервер: Запуск HTTP-сервера API для удаленных операций с сертификатами, настраиваемого с помощью пользовательских адресов, портов, уровней журналирования и конфигураций баз данных. Для установки требуется Go 1.20+ из-за зависимостей cgo. Готовые бинарные файлы доступны в релизах GitHub. Инструментарий широко используется в инфраструктуре для автоматизации управления жизненным циклом TLS-сертификатов.