#bash #aws-sdk #lets-encrypt #user-data
#bash #aws-sdk #позволяет зашифровать #пользовательские данные
Вопрос:
Я написал сценарий запуска с использованием php и aws sdk, он вызывает соответствующий userdata.sh скрипт для настройки экземпляра aws. Часть функции скриптов заключается в настройке ssl-сертификата через lets encrypt, после установки lets-encrypt и внесения изменений для ip и т.д., Которые в конечном итоге вызываются:
echo $(/opt/letsencrypt/certbot-auto certonly --webroot -w /var/www/html/$host.com/$environment.$domain.com -d $environment.$domain.com -d www.$environment.$domain.com -c /opt/letsencrypt/config.ini --agree-tos -n --dry-run)
Приведенное выше возвращает:
Запрос на повторный запуск / opt / letsencrypt / certbot-auto с правами root… Сохранение журнала отладки в /var/log /letsencrypt / letsencrypt.log Выбранные плагины: Authenticator webroot, Installer None Сертификат не подлежит обновлению, но имитирует обновление для пробного запуска Обновление существующего сертификата, выполняющего следующие задачи: http-01 вызов для environment.domain.com http-01 запрос для www.environment.domain.com Используя путь к веб-корню /var/www / html /host.com/environment.domain.com для всех несопоставимых доменов. Ожидание подтверждения… Проблемы с очисткой
ВАЖНЫЕ ПРИМЕЧАНИЯ: — Пробный запуск прошел успешно.
Я хочу убедиться, что тест прошел успешно, прежде чем пытаться запустить ту же команду снова без --dry-run
флага. Как я могу это сделать?
Ответ №1:
Надеюсь, это поможет кому-то еще в будущем:
$testval = /opt/letsencrypt/certbot-auto certonly --webroot -w /var/www/html/$host.com/$environment.$domain.com -d $environment.$domain.com -d www.$environment.$domain.com -c /opt/letsencrypt/config.ini --agree-tos -n --dry-run
if [[ $($testval) == *" - The dry run was successful."* ]]; then
echo "true";
else
echo "false";
fi