Що таке 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
:
2. Наявність коректних DNS-записів
У DNS має бути два записи:
Це забезпечить доступність обох адрес для перевірки.
3. Публічна доступність DNS-записів
Переконайтесь, що DNS-записи видно ззовні:
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 на своєму сайті — зараз саме час це зробити.