Let's Encrypt: безкоштовний SSL для кожного сайту

2025-05-17 22:39
40
Ця стаття на мовах: UA / RU

Зміст

Що таке Let's Encrypt?

Let's Encrypt — це ініціатива від Internet Security Research Group (ISRG), яка надає безкоштовні SSL/TLS-сертифікати для кожного, хто хоче забезпечити свій вебсайт зашифрованим з'єднанням HTTPS. Вперше запущена у 2016 році, платформа швидко завоювала популярність серед веброзробників та адміністраторів серверів.

Основні переваги Let's Encrypt:

Безкоштовно назавжди — сертифікати абсолютно безкоштовні.

Автоматизація — завдяки клієнту Certbot можна автоматично встановлювати та оновлювати сертифікати.

Простота у використанні — налаштування займає декілька хвилин.

Підтримка сучасних браузерів — сертифікати Let's Encrypt визнаються всіма основними браузерами.

Покращення безпеки — шифрування HTTPS підвищує довіру користувачів.

Як встановити Let's Encrypt?

Для більшості серверів (наприклад, Apache або Nginx) достатньо скористатися утилітою Certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

Або для Apache:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

Після налаштування, Certbot автоматично налаштує ваш сервер і отримає сертифікат.

Автоматичне оновлення сертифікатів

Сертифікати Let's Encrypt діють лише 90 днів, але їх можна автоматично оновлювати за допомогою Cron або Systemd Timer. Certbot зазвичай додає відповідне завдання під час встановлення, але перевірити можна так:

sudo certbot renew --dry-run

Умови видачі сертифікату

Для того, щоб сертифікат Let's Encrypt працював як з основним доменом (example.com), так і з піддоменом www.example.com, необхідно дотриматися наступних умов:

1. Обидва доменні імена мають бути вказані при запиті сертифіката

Наприклад, за допомогою certbot:

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

2. Наявність коректних DNS-записів

У DNS має бути два записи:

example.com. A IP_адреса_сервера www.example.com. A Та_сама_IP_адреса

Це забезпечить доступність обох адрес для перевірки.

3. Публічна доступність DNS-записів

Переконайтесь, що DNS-записи видно ззовні:

dig +short example.com dig +short www.example.com

4. Сервер повинен відповідати на HTTP-запити для обох адрес

Let's Encrypt виконує перевірку через HTTP (HTTP-01 challenge). Тому ваш вебсервер (наприклад, Nginx або Apache) має приймати запити за адресами:

  • http://example.com/.well-known/acme-challenge/...

  • http://www.example.com/.well-known/acme-challenge/...

5. Альтернатива: сертифікат лише для одного домену з редиректом

Якщо сертифікат виданий тільки на example.com, то www.example.com повинен перенаправлятися на основний домен за допомогою 301-редиректу. Але все одно краще видати сертифікат для обох.

Альтернативи Certbot

Існують інші клієнти для роботи з Let's Encrypt, наприклад:

acme.sh — легкий скрипт на bash.

Caddy — вебсервер із вбудованою підтримкою HTTPS.

lego — ACME-клієнт на Go.

Висновки

Let's Encrypt зробив безпечний веб доступним для кожного. Більше не потрібно витрачати гроші на дорогі сертифікати — достатньо кількох команд у терміналі. Якщо ви ще не використовуєте HTTPS на своєму сайті — зараз саме час це зробити.


Сподобалась стаття? Подякуйте автору