Как установить SSL Let's Encrypt: гид по бесплатному HTTPS
Установка Let's Encrypt SSL на Nginx и Apache через Certbot. Авто-обновление, wildcard-сертификаты и частые ошибки.
В 2026 сайт без SSL = «Не защищено» + штраф SEO. Let’s Encrypt даёт бесплатный SSL, Certbot ставит за 5 минут с авто-обновлением. В гиде — установка для Nginx и Apache + частые ошибки.
Требования
- DNS A-запись домена указывает на IP VDS (
dig +short ваш-сайт.com) - Открыты порты 80/443 (80 обязателен для валидации Let’s Encrypt)
- Доступ root
- Установлен веб-сервер (Nginx/Apache)
Установка Certbot
# Ubuntu/Debian
sudo apt install certbot python3-certbot-nginx -y
sudo apt install certbot python3-certbot-apache -y
# AlmaLinux/RHEL
sudo dnf install certbot python3-certbot-nginx -y
SSL для Nginx
Одной командой:
sudo certbot --nginx -d ваш-сайт.com -d www.ваш-сайт.com
Wizard:
- E-mail (для уведомлений о продлении)
- ToS → A
- HTTP → HTTPS redirect → 2 (Yes)
Через ~30 секунд сайт работает по HTTPS. В браузере зелёный замок.
Для Apache
sudo certbot --apache -d ваш-сайт.com -d www.ваш-сайт.com
Тот же wizard. Apache-конфиг правится автоматически.
Ручной режим
sudo certbot certonly --webroot -w /var/www/html -d ваш-сайт.com
Сертификаты в /etc/letsencrypt/live/ваш-сайт.com/. Конфиг веб-сервера правите сами.
Wildcard (*.ваш-сайт.com)
Wildcard требует DNS-challenge:
sudo certbot certonly --manual --preferred-challenges dns \
-d ваш-сайт.com -d "*.ваш-сайт.com"
Certbot попросит TXT-запись → добавьте в DNS-панели → подождите и Enter.
Авто DNS-challenge (Cloudflare API):
sudo apt install python3-certbot-dns-cloudflare -y
# /root/.cloudflare/credentials.ini
dns_cloudflare_api_token = ТОКЕН_СЮДА
sudo chmod 600 /root/.cloudflare/credentials.ini
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /root/.cloudflare/credentials.ini \
-d ваш-сайт.com -d "*.ваш-сайт.com"
Авто-обновление
Сертификаты Let’s Encrypt действуют 90 дней. Certbot при установке создаёт cron/timer:
sudo certbot renew --dry-run
sudo certbot renew
systemctl status certbot.timer
Ручной cron:
0 4 * * * certbot renew --quiet && systemctl reload nginx
Подробно: гид по cron.
Список сертификатов
sudo certbot certificates
Отзыв сертификата
sudo certbot revoke --cert-path /etc/letsencrypt/live/ваш-сайт.com/cert.pem
sudo certbot delete --cert-name ваш-сайт.com
SSL Labs-тест
После установки: https://www.ssllabs.com/ssltest/ — для A+:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Частые ошибки
- “Failed authorization procedure”:
- DNS A-запись неверна →
dig +short ваш-сайт.com - Порт 80 закрыт → проверьте UFW (пост UFW)
- Cloudflare proxy включён → выключите для валидации
- DNS A-запись неверна →
- “Too many requests”: лимит Let’s Encrypt (5 сертификатов в неделю на домен) → подождите
- “Certificate not yet due for renewal”: обновляет за 30 дней до окончания;
--force-renewal - Mixed content:
http://ссылки в контенте → меняйте наhttps://
Итог
SSL больше не опция — для доверия пользователей, SEO и compliance это обязательно. Let’s Encrypt + Certbot — бесплатное, автоматическое, официально поддержанное решение.
С Plesk ещё проще — см. пост Plesk.
По теме: UFW Firewall · Настройка cron
Похожие статьи
Возможно, вас также заинтересует.
Правило 3-2-1: как никогда не терять данные сервера
Правило резервного копирования 3-2-1 — золотой стандарт стратегии бэкапа сервера. Разбираем правило, автоматизацию и инфраструктуру KavesNET.
Читать далее
Как мигрировать сайт с Plesk на Plesk: гид по Migrator
Перенос сайтов, почты, БД и DNS за один раз с Plesk Migrator. Настройка, тест-миграция и cutover.
Читать далее
FileZilla: миграция файлов между двумя VDS
Перенос сайта со старого на новый VDS: FileZilla по FTP/SFTP, советы по скорости, права и обработка ошибок.
Читать далее