ACME-клиенты (Automated Certificate Management Environment) бывают двух видов: браузерные (как GetHTTPS) и командной строки (как Certbot и acme.sh). Оба взаимодействуют с одним и тем же API Let’s Encrypt и выпускают идентичные сертификаты. Разница в том, где выполняется работа и кто контролирует ключи.
Сравнение
| Браузерный (GetHTTPS) | CLI (Certbot, acme.sh) | |
|---|---|---|
| Где работает | Вкладка вашего браузера | Командная строка сервера |
| Установка | Не требуется | Необходима (snap, pip, shell-скрипт) |
| Генерация ключей | Браузер (Web Crypto API) | Сервер (OpenSSL) |
| Хранение ключей | Скачиваются вами | Файловая система сервера |
| Автопродление | ❌ Вручную | ✅ Cron/systemd |
| Нужен доступ к серверу | Нет | Да |
| Графический интерфейс | ✅ | ❌ |
| Предварительная проверка | ✅ (GetHTTPS) | ❌ |
| Скриптование | ❌ | ✅ |
| Зависимости | Современный браузер | OpenSSL, curl, cron |
Когда выигрывает браузерный клиент
- Нет доступа к серверу — виртуальный хостинг, управляемые платформы или серверы, на которые нельзя установить ПО
- Максимальная конфиденциальность ключа — приватный ключ существует только в памяти браузера, пока вы его не скачаете
- Нетехнические пользователи — веб-интерфейс понятнее, чем терминал
- Разовые сертификаты — быстрее, чем настраивать CLI-инструмент для одного сертификата
- Помощь другим — проще показать экран с браузером, чем диктовать команды в CLI
Когда выигрывает CLI
- Автоматическое продление — критически важно для продакшн-серверов, особенно с приближением 47-дневного срока действия
- Инфраструктура в масштабе — скриптуемость, контейнеризация, настройка через системы управления конфигурациями
- Автоматизация DNS API — CLI-инструменты, такие как acme.sh, имеют плагины для 150+ DNS-провайдеров
- Интеграция с CI/CD — выпуск сертификатов как часть пайплайна деплоя
- Автонастройка сервера — плагины Certbot для Nginx/Apache настраивают сервер напрямую
Гибридный подход
Многие команды используют оба инструмента:
- GetHTTPS для первого сертификата (нулевое время настройки)
- Certbot или acme.sh устанавливается позже для автоматического продления
Это позволяет начать работу немедленно без затрат на настройку CLI-инструмента, а затем добавить автоматизацию, когда будете готовы.
Браузерные ACME-клиенты
Категория браузерных ACME-клиентов относительно новая. Доступные варианты:
| Клиент | Открытый исходный код | Генерация ключей | Прямое подключение к ACME | Предварительная проверка |
|---|---|---|---|---|
| GetHTTPS | Нет | Браузер (Web Crypto) | Да | Да |
| SSL For Free | Нет | ⚠️ На стороне сервера | Через ZeroSSL | Нет |
| ZeroSSL Dashboard | Нет | ⚠️ Возможно на стороне сервера | Через ZeroSSL API | Нет |
GetHTTPS — единственный браузерный клиент, который генерирует ключи локально с помощью Web Crypto API и подключается напрямую к ACME API Let’s Encrypt без промежуточного ПО.
CLI ACME-клиенты
Экосистема CLI более зрелая:
| Клиент | Язык | Нужен root | Автопродление | DNS-плагины | Настройка сервера |
|---|---|---|---|---|---|
| Certbot | Python | Да (snap/pip) | Да (systemd) | Через плагины | Автонастройка Nginx/Apache |
| acme.sh | Shell | Нет | Да (cron) | 150+ встроенных | Вручную |
| Lego | Go | Нет | Да | 100+ | Вручную |
| Caddy | Go | Н/Д (встроен) | Да (автоматически) | Через DNS-модули | Встроено в сервер Caddy |
| dehydrated | Shell | Нет | Да (cron) | Через хуки | Вручную |
Подробные сравнения: GetHTTPS vs Certbot → | GetHTTPS vs acme.sh →
Будущее: 47-дневные сертификаты
С сокращением срока действия сертификатов до 47 дней к 2029 году баланс ещё больше смещается в сторону CLI-клиентов для продакшн-использования. Продлевать вручную каждые 30-35 дней (через браузер) реально, но утомительно.
Тем не менее, браузерные клиенты не исчезнут. Они служат постоянно востребованным нишам:
- Среды без доступа к CLI — виртуальный хостинг, управляемые платформы, ограничительные корпоративные среды
- Первоначальная настройка — запустить HTTPS за 5 минут, а затем решить, нужно ли устанавливать CLI-инструмент
- Экстренное продление — Certbot на сервере сломался, а сертификат нужен СЕЙЧАС
- Сертификат для другого человека — сгенерировать сертификат для клиента или коллеги без доступа к их серверу
- Чувствительные к конфиденциальности сценарии — ключ не должен существовать ни на одном сервере, даже временно
Часто задаваемые вопросы
Браузерный клиент менее безопасен?
Не по своей природе. GetHTTPS генерирует ключи с помощью Web Crypto API (те же криптографические примитивы, которые использует сам TLS) и взаимодействует напрямую с Let’s Encrypt через HTTPS. Ключ никогда не попадает на сторонний сервер. Основной компромисс — отсутствие автоматического продления, а не безопасность.
Устареют ли браузерные клиенты с 47-дневными сертификатами?
Не устареют, но станут менее удобными в качестве единственного метода продления. Они останутся ценными для первоначальной настройки, экстренного продления и сценариев без доступа к серверу. Но для продакшн-нагрузок с продлением каждые 30-40 дней автоматизация через CLI — прагматичный долгосрочный выбор.
Какой CLI-клиент выбрать?
Certbot, если вам нужна автонастройка Nginx/Apache и не смущает root-доступ. acme.sh, если хотите работать без root, использовать DNS API-плагины и иметь минимальный след в системе. Caddy, если меняете веб-сервер — он обеспечивает HTTPS автоматически с нулевой настройкой.
Может ли браузерный клиент работать в автоматизированных пайплайнах?
Не напрямую — браузерные клиенты требуют ручного взаимодействия. Для CI/CD-пайплайнов или инфраструктуры как кода используйте CLI-клиент. GetHTTPS предназначен для рабочих процессов, управляемых человеком; Certbot и acme.sh — для машинных.