## Установка SPET-CA для организации локального CA с использование ACME По умолчанию отключено удаленное управление, выпуск сертификатов по протоколу ACME или через командную строку #### Параметры переменных в файле .env ``` STEP_CA_IMAGE=smallstep/step-ca # имя образа контейнера STEP_CA_VERSION=0.25.0 # версия контейнера STEP_CA_NAME= # полное доменное имя CA. Например: ca.example.com ``` #### Параметры в 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 # задается пароль на текущий экземпляр, если не указан, будет сгенерирован автоматически ``` ### Запуск ```bash 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/](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://smallstep.com/docs/step-ca/installation/) - Установка сервера/клиента [https://github.com/NginxProxyManager/nginx-proxy-manager/issues/1013](https://github.com/NginxProxyManager/nginx-proxy-manager/issues/1013) - Исправление ошибки `Cannot read property '1' of null`