Інструкції та туторіали по хостингу Практика

Let's Encrypt на хостингу: як отримати безкоштовний SSL за 10 хвилин і забути про нього назавжди

Клавіатура під лупою символізує certbot налаштування ssl сертифіката lets encrypt

Уявіть: ви заходите на сайт, а браузер показує червоний замочок і напис «Небезпечно». Що ви зробите? Правильно - закриєте вкладку. Так само вчинять 85% ваших потенційних клієнтів, за даними GlobalSign. І ось парадокс: сертифікат SSL, який вирішує цю проблему, можна отримати абсолютно безкоштовно за 10 хвилин. Але тисячі власників сайтів досі платять $50-150 на рік або, що ще гірше, ігнорують HTTPS повністю. Давайте розберемося, як встановити Let's Encrypt на хостингу будь-якого типу - від shared до VPS - і зробити так, щоб він оновлювався сам, без вашої участі.

Чому SSL - це не про безпеку, а про гроші

Так, SSL шифрує дані між браузером та сервером. Це базова функція. Але давайте будемо чесними: для більшості сайтів головна цінність SSL - зовсім не шифрування. Це довіра. Google ще з 2014 року використовує HTTPS як фактор ранжування. А з 2018-го Chrome почав маркувати всі HTTP-сайти як небезпечні.

Ось що ви втрачаєте без SSL:

  • Позиції в пошуку - Google відверто понижує HTTP-сайти в видачі
  • Конверсію - покупець не введе номер картки на «небезпечному» сайті
  • Доступ до сучасних API - геолокація, камера, push-сповіщення працюють тільки через HTTPS
  • Швидкість - HTTP/2 та HTTP/3 вимагають SSL як обов'язкову умову

Let's Encrypt випустив понад 4 мільярди сертифікатів з моменту запуску в 2015 році. Це не маргінальний інструмент для ентузіастів - це стандарт індустрії, який використовують навіть великі компанії.

Абстрактна концепція кібербезпеки та безкоштовний ssl хостинг захист сайту
Абстрактна концепція кібербезпеки та безкоштовний ssl хостинг захист сайту

Let's Encrypt vs платні сертифікати: коли безкоштовне - не означає гірше

Я часто чую від клієнтів: «Безкоштовний сертифікат - це ж якась підробка, ні?» Ні. Let's Encrypt випускає повноцінні DV-сертифікати (Domain Validation), які криптографічно нічим не відрізняються від платних DV-сертифікатів Comodo або RapidSSL. Браузер покаже той самий зелений замочок.

Але різниця все ж існує. Ось чесне порівняння:

Параметр Let's Encrypt (безкоштовний) Платний DV (Comodo, RapidSSL) Платний OV/EV
Ціна $0 $10-50/рік $100-500/рік
Тип валідації Домен (DV) Домен (DV) Організація/Розширена
Термін дії 90 днів 1 рік 1-2 роки
Wildcard Так (через DNS-01) Зазвичай за доплату Так
Гарантія Немає $10 000-50 000 $250 000-1 750 000
Назва компанії в сертифікаті Ні Ні Так (OV/EV)

Коротко: якщо ви не банк і не платіжна система, Let's Encrypt покриває 100% ваших потреб. Єдиний нюанс - сертифікат живе 90 днів замість року, але автоматичне оновлення вирішує це раз і назавжди.

«Ми свідомо зробили термін дії 90 днів, щоб стимулювати автоматизацію. Ручне оновлення сертифікатів - це практика минулого, яка призводить до збоїв.» - Josh Aas, співзасновник Let's Encrypt та виконавчий директор ISRG

Встановлення через панель керування: три кліки для shared-хостингу

Якщо ви на shared-хостингу з cPanel, Plesk або DirectAdmin, вважайте, що вам пощастило. Більшість сучасних хостерів вже інтегрували Let's Encrypt прямо в панель. Ось покроковий алгоритм для cPanel:

  1. Зайдіть у cPanel і знайдіть секцію Security (або «Безпека»)
  2. Натисніть на SSL/TLS Status або Let's Encrypt SSL (залежить від версії)
  3. Виберіть домен, для якого потрібен сертифікат
  4. Натисніть Issue (Випустити) - і зачекайте 30-60 секунд
  5. Переконайтеся, що статус змінився на зелений - «Valid»

Все. Серйозно - все. Автооновлення в cPanel налаштоване за замовчуванням через AutoSSL. Сертифікат переоформиться за 30 днів до закінчення терміну, і ви навіть не помітите.

У Plesk процес аналогічний: Websites & Domains → ваш домен → SSL/TLS Certificates → Install. В DirectAdmin шукайте розділ SSL Certificates і кнопку Free & automatic certificate from Let's Encrypt.

Якщо ваш хостер не підтримує Let's Encrypt у панелі - це серйозний привід задуматися про переїзд. У 2025 році це базова функція, як електрика в квартирі.

Робоче місце адміністратора як встановити ssl на хостингу безкоштовно
Робоче місце адміністратора як встановити ssl на хостингу безкоштовно

Certbot на VPS: повний контроль для тих, хто не боїться терміналу

На VPS або виділеному сервері панелі може не бути. Або ви свідомо від неї відмовились, бо любите контроль. В такому разі ваш найкращий друг - Certbot, офіційний клієнт від EFF для роботи з Let's Encrypt.

Ось як встановити сертифікат на Ubuntu з Nginx (найпоширеніша зв'язка):

Крок 1. Встановіть Certbot:

sudo apt update && sudo apt install certbot python3-certbot-nginx -y

Крок 2. Запустіть випуск сертифіката:

sudo certbot - nginx -d yourdomain.com -d www.yourdomain.com

Крок 3. Дайте відповіді на запитання (email, згода з умовами, редирект HTTP→HTTPS). Все. Certbot сам знайде конфігурацію Nginx, додасть потрібні рядки, перезапустить сервер.

Крок 4. Перевірте автооновлення:

sudo certbot renew - dry-run

Якщо бачите «Congratulations, all simulated renewals succeeded» - можете відкинутися на спинку крісла. Certbot додав cron-завдання або systemd-таймер, який перевірятиме сертифікат двічі на день і оновить його автоматично.

Для Apache команда майже ідентична - просто замініть python3-certbot-nginx на python3-certbot-apache і використайте прапор - apache замість - nginx.

Wildcard-сертифікати і DNS-challenge: коли стандартного способу замало

Допустимо, у вас десяток піддоменів: shop.yourdomain.com, blog.yourdomain.com, api.yourdomain.com і так далі. Випускати окремий сертифікат для кожного? Звучить як покарання. Тут рятує wildcard-сертифікат - один сертифікат на *.yourdomain.com.

Але є нюанс: wildcard-сертифікати Let's Encrypt видає тільки через DNS-01 challenge. Це означає, що замість перевірки через HTTP-файл на сервері, вам потрібно створити спеціальний TXT-запис у DNS.

Команда виглядає так:

sudo certbot certonly - manual - preferred-challenges dns -d "*.yourdomain.com" -d yourdomain.com

Certbot попросить вас додати TXT-запис _acme-challenge.yourdomain.com зі згенерованим значенням. Ви йдете в DNS-панель вашого реєстратора, додаєте запис, чекаєте 1-5 хвилин на пропагацію, повертаєтесь і натискаєте Enter.

Проблема: автооновлення wildcard-сертифікатів через ручний DNS-challenge не працюватиме без додаткових плагінів. Вам знадобиться DNS-плагін для Certbot, сумісний з вашим DNS-провайдером. Cloudflare, DigitalOcean, Route53 - для всіх є готові рішення:

sudo certbot certonly - dns-cloudflare - dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini -d "*.yourdomain.com" -d yourdomain.com

Після цього автооновлення працює як годинник.

Ілюстрація блокчейн технології та wildcard сертифікат lets encrypt dns верифікація
Ілюстрація блокчейн технології та wildcard сертифікат lets encrypt dns верифікація

Типові помилки, які ламають весь процес

За роки роботи я бачив десятки конфігурацій, де Let's Encrypt «не працює». В 90% випадків причина - одна з цих помилок:

  • Порт 80 закритий у файрволі - HTTP-01 challenge потребує відкритий порт 80, навіть якщо весь трафік йде через 443
  • DNS вказує не на той сервер - A-запис домену повинен вести саме на IP вашого сервера, а не на проксі чи старий хостинг
  • Rate limits - Let's Encrypt дозволяє максимум 50 сертифікатів на домен за тиждень. Якщо ви 20 разів поспіль помилилися - доведеться чекати
  • Забули www - сертифікат для yourdomain.com не покриває www.yourdomain.com. Завжди додавайте обидва варіанти через прапор -d
  • Mixed content після переходу на HTTPS - сайт вантажить картинки або скрипти через HTTP, і браузер ламає сторінку

Остання помилка - найпідступніша. Ви встановили сертифікат, увімкнули редирект, все працює - а на деяких сторінках замочок сірий або зламаний. Причина: десь у коді або в базі даних залишились посилання виду http://yourdomain.com/image.jpg. Рішення - плагін Really Simple SSL для WordPress або глобальний пошук-заміна в базі через Search-Replace-DB.

Після встановлення: що ще потрібно зробити

Сертифікат стоїть, замочок зелений, ви молодець. Але є ще кілька речей, які відрізняють «просто SSL» від «правильно налаштований SSL»:

  1. Налаштуйте 301-редирект з HTTP на HTTPS - не 302, а саме 301 (permanent). Для Nginx: return 301 https://$host$request_uri;
  2. Додайте HSTS-заголовок - Strict-Transport-Security: max-age=31536000; includeSubDomains. Це скаже браузеру завжди використовувати HTTPS
  3. Оновіть sitemap.xml і robots.txt - всі URL повинні бути з https://
  4. Перевірте Google Search Console - додайте HTTPS-версію сайту як окрему властивість
  5. Протестуйте на SSL Labs - зайдіть на ssllabs.com/ssltest і переконайтесь, що у вас рейтинг A або A+

HSTS - це та деталь, яку пропускають 70% сайтів з SSL. Без нього перший запит до вашого сайту все ще може перехоплюватися через HTTP.

І ось що мене завжди дивує: ми живемо у 2025 році, безкоштовний SSL встановлюється за 10 хвилин, автооновлення працює без участі людини - а мільйони сайтів досі висять на HTTP. Може, справа не в складності технології, а в тому, що ми просто відкладаємо прості речі на потім? Скажіть чесно - ваш сайт вже на HTTPS?