Что такое step-ca и зачем он нужен
step-ca — это онлайн-центр сертификации (CA), разработанный Smallstep Labs как серверная часть экосистемы step. Проект ориентирован на автоматизацию управления PKI в DevOps-среде. В отличие от традиционных сложных систем, step-ca оптимизирован для двухуровневой архитектуры, где он выступает в роли промежуточного CA (intermediate CA) для существующего корневого центра.
Ключевая ценность продукта — поддержка протокола ACME (RFC 8555), что позволяет использовать его как замену Let's Encrypt для внутренних нужд, а также интеграция с современными системами идентификации, такими как OAuth OIDC и облачные метаданные.
Ключевые технические возможности
Решение поддерживает выпуск HTTPS-сертификатов, совместимых с браузерами (RFC5280, CA/Browser Forum), а также SSH-сертификатов для аутентификации пользователей и хостов. Сертификаты могут быть короткоживущими (short-lived), что снижает риски компрометации.
Система поддерживает множество методов авторизации запросов (provisioners). Ниже приведено сравнение доступных методов аутентификации:
| Метод авторизации | Описание и использование |
|---|---|
| ACME Challenge | Поддержка http-01, dns-01, tls-alpn-01. Совместимо с certbot, acme.sh, Caddy, Traefik, nginx. |
| OAuth OIDC | Использование ID-токенов от Okta, GSuite, Azure AD, Auth0, Keycloak, Dex для аутентификации пользователей. |
| Cloud Instance Identity | Валидация через документы идентичности инстансов AWS, GCP и Azure для автоматизации на хостах. |
| SSH POP | Провайдер для автоматического обновления SSH-сертификатов хостов. |
| X.509 Certificate (X5C) | Использование существующего доверенного X.509-сертификата для получения нового. |
Хранение данных и инфраструктура
step-ca поддерживает несколько бэкендов для хранения состояния CA, что позволяет гибко настраивать инфраструктуру под нагрузку:
- Badger и BoltDB — для легких развертываний и тестирования.
- PostgreSQL и MySQL — для production-сред с высокой нагрузкой.
Программный интерфейс позволяет управлять сертификатами через Go-обертку, CLI-клиент step или библиотеки для Python (certbot's acme module) и Node.js (acme-client).
Отличие от коммерческой версии
Smallstep Labs четко разграничивает open-source версию и коммерческий продукт. step-ca не поддерживает:
- Активную отзыв сертификатов (CRL, OCSP).
- Интеграцию с SCEP/NDES для миграции с legacy Active Directory Certificate Services.
- Управление устройствами через Secure Enclave и TPM 2.0.
- FIPS-совместимое программное обеспечение и ключи, привязанные к HSM.
- Web Admin UI для мониторинга и метрик.
Для организаций, которым требуются эти функции, Smallstep предлагает коммерческую лицензию с бесплатным триалом.
Источник: Github ↗
