Автоматическое получение и управление SSL сертификатами Let's Encrypt в ServBay
Современная веб-разработка требует тщательного моделирования продакшн-окружения даже на локальной машине — включая поддержку HTTPS. ServBay интегрирует протокол ACME (Automated Certificate Management Environment), благодаря которому вы легко сможете автоматически получать, устанавливать и управлять бесплатными SSL/TLS сертификатами, такими как Let's Encrypt, через удостоверяющие центры (CA). Это руководство поможет вам поэтапно выпустить сертификат Let's Encrypt с помощью ServBay и применить его на локальном сайте.
Преимущества сертификатов Let's Encrypt: бесплатность, автоматизация, высокий уровень доверия, а также возможность тестировать поведение HTTPS, Service Workers, HSTS и другие функции на локальных проектах.
Необходимые условия
Перед тем как приступить к получению сертификата Let's Encrypt, убедитесь, что выполнены следующие требования:
- Публичный домен: У вас должен быть зарегистрированный и действующий домен (например,
servbay.demo
илиyourdomain.com
). Let's Encrypt не выдает сертификаты для локальных IP-адресов или доменов наподобие.local
. - Возможность управления DNS-записями: ServBay использует верификацию через DNS API. Вам потребуется доступ к панели управления вашего регистратора доменов или DNS-провайдера (например, Cloudflare, GoDaddy, AWS Route 53) с правом создания API-ключей для автоматизации.
- Получение DNS API ключа: Сгенерируйте необходимый API-ключ или токен согласно требованиям вашего DNS-провайдера. Способы получения для разных провайдеров различаются, но обычно нужен API-ключ с правами на управление DNS-записями. Подробности по провайдеру, структуре переменных и получению ключей смотрите в DNS API WIKI проекта acme.sh.
Пошаговая инструкция по получению сертификата
Вот последовательность действий для получения SSL-сертификата Let's Encrypt через ServBay:
Откройте панель управления ServBay: Запустите приложение ServBay, кликните по иконке в меню, выберите "Панель управления" (Manager Panel), чтобы открыть веб-интерфейс.
Перейдите к управлению SSL сертификатами: В левой панели выберите вкладку
SSL сертификаты
(SSL Certificates).Начните оформление нового сертификата: В правом верхнем углу страницы списка сертификатов нажмите кнопку “+” (круглая кнопка). Откроется окно конфигурации запроса сертификата.
Заполните данные сертификата: В появившемся окне “Request Certificate” (Запрос сертификата) введите данные по инструкции:
- Common Name (Общее имя): Укажите название для идентификации сертификата, например
servbay-demo-cert
илиmydomain-wildcard-cert
. - Usage Purpose (Назначение): Выберите
TLS/SSL
. - Request Method (Метод запроса): Установите
ACME
. - Issuer (Удостоверяющий центр): Выберите
Let's Encrypt
. - DNS API Provider (DNS API-провайдер): В выпадающем списке выберите своего DNS-провайдера (например,
cloudflare
для Cloudflare,godaddy
для GoDaddy). - Algorithm (Алгоритм): Рекомендуется выбирать
ECC
(эллиптические кривые) с длиной ключа384
. Сертификаты ECC компактнее RSA и обеспечивают лучшую производительность и безопасность. - E-Mail Address (Email): Укажите рабочий email. На него будут приходить важные уведомления Let's Encrypt (об истечении/ошибках продления).
- DNS API Tokens (DNS API токены): Введите API-ключ/токен, требуемый вашим провайдером, в виде переменных окружения. Подробности по форматам и нужным переменным ищите у провайдера или в DNS API WIKI acme.sh. Важно: не нужно указывать
export
перед переменными. Например, для Cloudflare:CF_Key=sdfsdfsdffgfdg\[email protected]
(каждую переменную разделяйте\n
). - Domain (Домен): Введите домен(-ы) для сертификата. Для мультидоменных или wildcard-сертификатов (например,
*.servbay.demo
) используйте запятую:servbay.demo, www.servbay.demo, *.servbay.demo
. Для wildcard-сертификатов требуется подтверждение через DNS API!
Обратите внимание: на скриншоте в качестве Common Name указан Test. Рекомендуется использовать информативные имена.
- Common Name (Общее имя): Укажите название для идентификации сертификата, например
Отправьте заявку: Убедитесь, что все данные заполнены верно, затем нажмите кнопку “Request” (Запросить).
Ожидайте завершения процесса: ServBay в фоновом режиме запустит ACME-клиент, который проведет проверку владения доменом (через указанный вами DNS API), отправит запрос в Let's Encrypt и после успешного завершения добавит сертификат в список SSL-сертификатов вашей панели. Процесс может занять от пары минут до часа — это зависит от скорости обновления DNS и отклика Let's Encrypt.
Использование сертификата
Когда сертификат успешно получен и отображается в списке, вы сможете применить его для локального сайта:
- Перейдите к настройке сайта: Откройте раздел
Сайты
(Websites) в панели управления ServBay. - Редактируйте нужный сайт: Найдите нужный сайт и кликните на иконку редактирования (обычно это карандаш).
- Настройте HTTPS/SSL: В настройках сайта найдите опцию для выбора сертификата SSL.
- Выберите ACME-сертификат: В источнике сертификата установите
ACME
, затем выберите только что полученный сертификат по его Common Name. - Сохраните изменения: После сохранения настроек ServBay перезагрузит конфигурацию сайта, и вы сможете открыть его по HTTPS.
На скриншоте показан выбор ACME сертификата для сайта.
Продление сертификата
Сертификаты Let's Encrypt действительны 90 дней. В ServBay встроен механизм автоматического продления: как только до конца действия сертификата останется 30 дней, ServBay попытается автоматически продлить его, используя текущие настройки и API-ключ. Ручных действий не требуется. Важно, чтобы используемый API-ключ для DNS оставался актуальным (иначе продление может не пройти). В случае проблем с продлением уведомление будет отправлено на ваш email.
ACME-протокол и проверка через DNS API
- Протокол ACME: Открытый стандарт автоматизации проверки домена и выдачи сертификатов. CA (например, Let's Encrypt) используют этот протокол для взаимодействия с такими клиентами, как интегрированный ACME-клиент ServBay и автоматизации всех процессов.
- DNS API-подтверждение: Один из способов проверки на владение доменом по ACME-протоколу — через DNS API. Клиент создает специальную TXT-запись в DNS вашего домена с помощью API, удостоверяющий центр проверяет наличие записи и выдает сертификат. Метод нужен, если:
- Вы оформляете wildcard-сертификат (например,
*.servbay.demo
); - Ваш локальный ServBay недоступен извне (например, работает в локальной сети или провайдер блокирует порты 80/443).
- Вы оформляете wildcard-сертификат (например,
Выбор алгоритма сертификата: ECC или RSA
При создании запроса на сертификат ServBay позволяет выбрать алгоритм ECC или RSA.
- RSA: Традиционный криптографический алгоритм, поддерживается всеми клиентами и браузерами. Стандартная длина ключей — 2048 или 4096 бит.
- ECC: Алгоритм на основе эллиптических кривых. Для той же криптоустойчивости, что у RSA, ключи ECC намного короче (ECC 256 ≈ RSA 3072), соединения открываются быстрее, нагрузка на сервер меньше. Поддерживается всеми современными браузерами и ОС.
Рекомендация: Для новых сертификатов предпочтительно использовать ECC с длиной 384 бита — это даст максимальную производительность и безопасность. Если же нужна совместимость со старыми клиентами, выбирайте RSA.
Обратите внимание
- Время распространения DNS-записей: После изменения DNS TXT-записей понадобится время (от нескольких минут до нескольких часов) для их обновления по всему миру. При ошибке “не найдено” — попробуйте повторить запрос позже.
- Безопасность API-ключей: Ваш API-ключ позволяет изменять DNS-записи и контролировать домен — храните его в безопасности, не передавайте третьим лицам.
- Лимиты Let's Encrypt: На получение и продление сертификатов действуют ограничения по количеству запросов. Если часто выполнять заявки/продления на один домен, возможна блокировка на время. Обычно автоматическое продление в рамках ServBay не приводит к превышению лимитa.
Часто задаваемые вопросы (FAQ)
- В: Мой домен резолвится на локальный IP. Можно ли получить сертификат Let's Encrypt?
- О: Да, при использовании верификации через DNS API. Let's Encrypt проверяет доступ к управлению DNS-записями, а не публичную доступность домена/IP.
- В: Запрос сертификата не удался. Что делать?
- О: Проверьте корректность введенного API-ключа и наличие необходимых прав. Удостоверьтесь, что правильно выбран DNS API-провайдер. Иногда проблема — в задержке распространения DNS. Попробуйте через несколько минут, проверьте журнал ServBay для детального анализа.
- В: За сколько дней до истечения ServBay продлевает сертификат?
- О: Обычно автоматическое продление стартует за 30 дней до истечения срока действия сертификата.
- В: Можно ли получить сертификат для домена
.local
?- О: Нет, Let's Encrypt выдает сертификаты только для публичных доменов. Для локальных адресов и доменов (
.local
) вы можете создать самоподписанный сертификат с помощью функций ServBay User CA или ServBay Public CA.
- О: Нет, Let's Encrypt выдает сертификаты только для публичных доменов. Для локальных адресов и доменов (
- В: Что делать, если моего DNS-провайдера нет в списке ServBay?
- О: ACME-клиент ServBay поддерживает большинство популярных DNS-провайдеров. Если ваш провайдер экзотический — настройку можно попробовать вручную. Проверьте поддержку в DNS API WIKI acme.sh. Если в UI его нет — обратитесь в поддержку ServBay.
Итоги
ServBay, благодаря интеграции протокола ACME, значительно упрощает получение и управление SSL-сертификатами Let's Encrypt в локальной среде разработки. С помощью проверки через DNS API вы сможете в пару кликов оформить и автоматически продлять сертификаты для любых публичных доменов, включая wildcard — и максимально приблизить локальное окружение к боевому, улучшив безопасность и удобство тестирования. Следуйте пошаговому руководству — и ваш локальный сайт в ServBay будет работать по HTTPS всего за несколько минут!