Автоматичне отримання та керування SSL сертифікатами Let's Encrypt у ServBay
У сучасній веб-розробці критично важливо моделювати середовище продакшену локально, включно з використанням HTTPS. ServBay інтегрує підтримку протоколу ACME (Automated Certificate Management Environment), що дозволяє легко автоматизувати отримання, встановлення та керування безкоштовними SSL/TLS сертифікатами від таких центрів сертифікації, як Let's Encrypt. У цій статті ви знайдете покрокову інструкцію, як отримати сертифікат 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-ключа: відповідно до вимог вашого DNS-провайдера, згенеруйте необхідний API-ключ або токен з правами керування DNS-записами. Як дізнатися детальніше — перегляньте DNS API WIKI проєкту
acme.sh
: знайдіть свого провайдера та довідайтеся, які саме API-дані та змінні оточення потрібні.
Покрокова інструкція
Як отримати 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 (Електронна пошта): вкажіть чинну адресу. На неї Let's Encrypt надсилатиме важливі сповіщення про закінчення дії чи помилки поновлення сертифіката.
- DNS API Tokens (DNS API токен): впишіть API-ключ/токен згідно вимог провайдера. Зазвичай це набір змінних середовища (див. документацію вашого провайдера чи WIKI DNS API
acme.sh
). Важливо: не додавайте перед API-інформацією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 за сертифікатом. Час виконання залежить від реальної швидкості розповсюдження DNS-записів і відповіді Let's Encrypt. Після завершення новий сертифікат автоматично з'явиться у списку SSL сертифікатів.
Використання сертифіката
Коли сертифікат з’явиться у списку, його можна застосувати для вашого локального сайту:
- Перейдіть до налаштувань сайту: В управлінській панелі ServBay оберіть розділ
Сайти
(Websites). - Редагуйте налаштування сайту: Знайдіть потрібний сайт і натисніть кнопку редагування (іконка олівця).
- Налаштуйте HTTPS/SSL: На сторінці налаштувань сайту знайдіть розділ із параметрами SSL/HTTPS, де можна вибрати джерело SSL-сертифіката.
- Оберіть ACME-сертифікат: В полі джерела сертифіката оберіть
ACME
, а далі в списку — тільки-що отриманий сертифікат із вашим Common Name. - Збережіть налаштування: Збережіть зміни в конфігурації. ServBay перезавантажить сайт із новим SSL-сертифікатом, і ви зможете відвідати його по HTTPS.
Скріншот демонструє процес вибору ACME-сертифіката для сайту.
Поновлення сертифіката
Сертифікати Let's Encrypt дійсні протягом 90 днів. ServBay має вбудований механізм автоматичного поновлення. За 30 днів до завершення дії ACME-сертифіката, ServBay спробує автоматично поновити його з тими ж параметрами, без вашої участі. Важливо: подбайте, аби API-ключ провайдера DNS залишався чинним. У разі проблем Let's Encrypt надішле листа на зазначену при реєстрації електронну пошту.
Про протокол ACME та верифікацію DNS API
- Протокол ACME: ACME — відкритий стандарт для автоматизації верифікації домену й отримання сертифікатів. Let's Encrypt та інші сертифікаційні центри взаємодіють із клієнтським ПЗ (наприклад, з ACME-клієнтом у ServBay), що автоматично подає заявки та керує сертифікатами.
- Верифікація через DNS API: ACME підтримує перевірку доменного володіння за допомогою DNS API. Клієнт створює спеціальний TXT-запис у DNS вашого домену, який перевіряється сервером центру сертифікації для підтвердження контролю над доменом. Особливо корисно у таких випадках:
- для отримання wildcard-сертифікату (наприклад,
*.servbay.demo
); - коли локальний інстанс ServBay недоступний ззовні (наприклад, у внутрішній мережі або при блокуванні портів 80/443 вашим провайдером).
- для отримання wildcard-сертифікату (наприклад,
Вибір алгоритму сертифіката: ECC чи RSA
Під час отримання сертифіката у ServBay ви можете обрати ECC або RSA.
- RSA: класичний алгоритм асиметричного шифрування, найвища сумісність, підтримується всіма браузерами й клієнтами. Типові розміри ключа — 2048 або 4096 біт.
- ECC: шифрування на еліптичних кривих. При однаковому рівні безпеки ключі ECC коротші (наприклад, ECC 256 біт ≈ RSA 3072 біт), що прискорює TLS-рукостискання та знижує навантаження на сервер і клієнт. ECC підтримується сучасними ОС і браузерами.
Рекомендація: для нових сертифікатів оберіть ECC із довжиною 384 біти — це оптимально щодо швидкодії та безпеки. Якщо потрібна максимальна сумісність зі старими клієнтами, допускається RSA.
Важливі зауваження
- Час розповсюдження DNS: після подання заявки текстовий DNS-запис може розповсюджуватися по мережі кілька хвилин чи навіть годин. Якщо одразу не вдалося отримати сертифікат — зачекайте і спробуйте знову.
- Безпека API-ключів: API-ключі DNS дають можливість керування всіма DNS-записами вашого домену. Нікому їх не передавайте й зберігайте у безпеці.
- Обмеження Let's Encrypt: у Let's Encrypt діють обмеження частоти звернень. Надмірно часте отримання чи поновлення сертифікатів для одного домену призведе до блокування. Нормальна робота автоматичного поновлення ServBay обмеження не спровокує.
Часті питання (FAQ)
- Q: Мій домен налаштований на локальну IP-адресу, чи можу я отримати сертифікат Let's Encrypt?
- A: Так, якщо використовуєте підтвердження через DNS API. Let's Encrypt перевіряє лише, чи маєте ви контроль над DNS-записом домену.
- Q: Що робити, якщо заявка на сертифікат не вдалася?
- A: Передусім перевірте правильність і дійсність DNS API-ключа, а також наявність необхідних прав. Переконайтеся, що вибрали вірного DNS API Provider. Також варто почекати, поки новий DNS-запис розповсюдиться, і спробувати знову. Перевірте журнали ServBay — вони можуть містити причину помилки.
- Q: За який термін до закінчення сертифіката ServBay автоматично поновить його?
- A: Як правило, за 30 днів до завершення дії сертифіката.
- Q: Чи можна отримати сертифікат для локального домену
.local
?- A: Ні. Let's Encrypt видає сертифікати лише для публічних доменів. Для
.local
чи локальних IP використовуйте функції ServBay User CA або ServBay Public CA для генерації самопідписаних чи тестових сертифікатів.
- A: Ні. Let's Encrypt видає сертифікати лише для публічних доменів. Для
- Q: Мого DNS провайдера немає серед підтримуваних у ServBay — що робити?
- A: ACME-клієнт ServBay підтримує більшість основних провайдерів DNS. Якщо ваш провайдер не у списку, ознайомтесь з WIKI DNS API
acme.sh
щодо підтримки саме вашого сервісу та налаштування змінних. Якщо потрібного пункту немає в інтерфейсі, зверніться до служби підтримки ServBay.
- A: ACME-клієнт ServBay підтримує більшість основних провайдерів DNS. Якщо ваш провайдер не у списку, ознайомтесь з WIKI DNS API
Підсумок
Інтеграція протоколу ACME у ServBay значно спрощує отримання і поновлення SSL сертифікатів Let's Encrypt у локальному середовищі. Використання DNS API дозволяє без зусиль отримати безкоштовний сертифікат для будь-якого вашого публічного домену (і для wildcard-доменів!), а автоматичне поновлення дозволяє повністю моделювати продакшен-конфігурацію HTTPS на локальному сервері. Дотримуйтесь описаних кроків — і ваш сайт у ServBay працюватиме по-справжньому захищено навіть локально.