tcibot/README

63 lines
4.5 KiB
Plaintext
Raw Normal View History

2023-04-10 13:06:15 +03:00
TCI CertRobot
Клиентская утилита, автоматизирующая запрос/получение сертификатов и прохождение DCV.
Требуется аккаунт на tlscc.ru. То есть, пользователь регистрируется в ЦС TLS, а реквизиты акканута (логин/пароль)
передаёт данной утилите (в конфигурационном файле, либо пароль можно указать в командной строке).
Для проверки права управления доменным именем используется HTTP-подтверждение, которое реализуется двумя способами:
1) запуск собственного HTTP-респондера, встроенного в утилиту (требуется возможность приёма соединений 80/tcp);
2) размещение файла с кодом подтверждения в директории независимого (от утилиты) веб-сервера (требуется указать путь к директории web root).
Конфигурационный файл
По умолчанию - tcibot.conf (см. ниже).
Файл в формате JSON, описание полей:
"backend_hostname" - строка; имя хоста, под которым доступен сервис ЦС ("tlscc.ru");
"api_path" - строка; часть URL, обозначающая корневую директорию API ("api/1.0"); слева не должно быть косой черты ("/");
"login" - строка; логин пользователя в ЦС TLS ТЦИ ("user@test.ru");
"password" - строка; опциональный пароль к логину (обратите внимание: в данной версии пароль сохраняется в открытом виде;
пароль можно указывать в параметрах командной строки, а не только в конфигурационном файле);
"working_dir" - строка; рабочая директория утилиты, без завершающей косой черты, - в эту директорию записываются полученные сертификаты
и СЕКРЕТНЫЕ ключи ("/etc/pki/private/operations");
"root_cert_file" - строка; ОПЦИОНАЛЬНЫЙ СЛУЖЕБНЫЙ параметр - позволяет использовать заданный сертификат в качестве
доверенного корневого сертификата при доступе к API; указывает на путь к PEM-файлу сертификата; при отсутствии данного
параметра (или если значением является пустая строка) используется системный набор корневых сертификатов;
"debug" - true/false, флаг; включает режим отладки - в данном режиме утилита выводит дополнительные сообщения
о статусе во время работы (false).
Пример файла конфигурации:
{
"backend_hostname" : "cs-tls.ru",
"api_path" : "api/1.0/",
"login" : "user@test.ru",
"password" : "",
"working_dir" : "/etc/tcibot/private",
"root_cert_file" : "",
"debug" : false
2023-04-10 13:06:15 +03:00
}
Вызов
./tcibot -d domain.tld [-c config.conf] [-p pwd123] [-r /var/www/site/]
где:
-d - доменное имя, для которого заказывается сертификат;
-c - конфигурационный файл (по умолчанию - tcibot.conf в текущей директории);
-p - пароль для аккаунта на tlscc.ru (ЦС TLS ТЦИ); пароль также может быть указан в конфигурационном файле, приоритет имеет параметр командной строки;
-r - корневая директория веб-сервера, означает, что для подтверждения права управления используется независимый веб-сервер.
Основной вывод производится в STDERR, имена файлов сертификатов и ключей - выводятся в STDOUT.
Сборка
cd cmd/
go build -o /path/to/utils/tcibot main.go