4.2 KiB
Установка SPET-CA для организации локального CA с использование ACME
По умолчанию отключено удаленное управление, выпуск сертификатов по протоколу ACME или через командную строку
Параметры переменных в файле .env
STEP_CA_IMAGE=smallstep/step-ca # имя образа контейнера
STEP_CA_VERSION=0.25.0 # версия контейнера
STEP_CA_NAME=<CHANGE> # имя текущего экземпляра. Например: CORP LTD
Параметры в docker-compose.yml
DOCKER_STEPCA_INIT_NAME # имя текущего экземпляра
DOCKER_STEPCA_INIT_DNS_NAMES # доменны именя, на которых будут приниматься запросы (желарельно выключить localhost для локального администрирования)
DOCKER_STEPCA_INIT_ACME # выключить режим выпуска по протоколу ACME
DOCKER_STEPCA_INIT_ADDRESS # адрес:порт на котором будут прослушиваться запросы (можно указать только порт, например - :443)
DOCKER_STEPCA_INIT_REMOTE_MANAGEMENT # включить возможно удаленного администрирования экземпляра, если выключего, команды принимаются только из контейнера
DOCKER_STEPCA_INIT_PROVISIONER_NAME # задается имя для удаленного администрирования (по умолчанию admin)
DOCKER_STEPCA_INIT_PASSWORD # задается пароль на текущий экземпляр, если не указан, будет сгенерирован автоматически
Запуск
git clone https://git.badms.ru/bms/step-ca.git
cd step-ca
mkdir data
chown 1000:1000 data
# Заменить значения в файле .env
docker compose up -d
Для корректной работы с NginxProxyManager после запуска устанавливаем параметр ForceCN
docker exec step-ca step ca provisioner update acme --force-cn
docker compose restart
Примеры комманд
-
проверка доступности
запускается на том же хосте, где запущен контейнер, в случае если включено удаленное администрирование
CA_FP=$(docker exec step-ca step certificate fingerprint certs/root_ca.crt)
step ca bootstrap --ca-url https://$(hostname -f) --fingerprint $CA_FP --install
curl https://$(hostname -f)/health
-
политика выпуска сертификаторв
задает политики выпуска сертификатов, первое правило исключает блокировку учетной записи step при локальном администрировании
step ca policy authority x509 allow dns step
step ca policy authority x509 allow dns "*.example.com"
-
добавить forceCN=true для того, чтобы работал NPM
step ca provisioner update acme --force-cn --password-file data/secrets/password --admin-subject=step --admin-provisioner=admin
-
пример выпуска/перевыпуска сертификата
step ca certificate test.badms.ru test.crt test.key --password-file data/secrets/password --provisioner admin --force
Полезные ссылки
https://ypbind.de/maus/notes/real_life_step-ca_with_multiple_users/ - Running a private CA using step-ca in a multi-admin environment
https://smallstep.com/docs/step-ca/installation/ - Установка сервера/клиента
https://github.com/NginxProxyManager/nginx-proxy-manager/issues/1013 - Исправление ошибки Cannot read property '1' of null