|
|
## Установка SPET-CA для организации локального CA с использование ACME
|
|
|
|
|
|
По умолчанию отключено удаленное управление, выпуск сертификатов по протоколу ACME или через командную строку
|
|
|
|
|
|
|
|
|
|
|
|
#### Параметры переменных в файле .env
|
|
|
|
|
|
```
|
|
|
STEP_CA_IMAGE=smallstep/step-ca # имя образа контейнера
|
|
|
STEP_CA_VERSION=0.25.0 # версия контейнера
|
|
|
STEP_CA_NAME=<CHANGE> # полное доменное имя 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`
|