This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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" : "your_password",
"working_dir" : "/etc/tcibot/private",
"root_cert_file" : "path_to_cert's_dir",
"debug" : false
}
Вызов
./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