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).
|
|
|
|
|
|
|
|
|
|
|
|
Пример файла конфигурации:
|
|
|
|
|
|
{
|
2023-07-18 15:00:49 +03:00
|
|
|
|
"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
|
|
|
|
|
|
|