Бесплатные SSL-сертификаты Lets Encrypt: пошаговая установка

Пошаговая установка Lets Encrypt SSL бесплатно, без кода и кофе-брейков. Сайт станет HTTPS за чашку чая!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Цель статьи — показать‚ как абсолютно бесплатно получить‚ установить и автоматически продлевать SSL/TLS-сертификат от Let’s Encrypt для веб-сервера Nginx в Ubuntu 20.04. По итогу ваш сайт будет открываться по защищённому протоколу HTTPS без брачных предупреждений браузера.

Что такое Let’s Encrypt и зачем он нужен

Let’s Encrypt — некоммерческий центр сертификации‚ который выдаёт бесплатные сертификаты X.509.

Преимущества:

  • Криптография 2048-бит RSA или ECDSA (безопасность на уровне платных решений);
  • Полная автоматизация благодаря утилите Certbot;
  • Сертификат действует 90 дней‚ но продляется автоматически;
  • Доверен всеми современными браузерами и ОС.

Что потребуется для работы

  1. Сервер на Ubuntu 20.04 (достаточно самого дешёвого VPS);
  2. Nginx уже установлен и запущен;
  3. Доменное имя (example.com) с настроенными DNS-записями A на IP вашего сервера:
    • example.com → 203.0.113.10
    • www.example.com → 203.0.113.10
  4. Права sudo на сервере.

Шаг 0: Проверьте исходную конфигурацию Nginx

Убедитесь‚ что в конфиге вашего сайта есть директива server_name с вашим доменом:

sudo nano /etc/nginx/sites-available/example.com

Должна присутствовать строка:

server_name example.com www;example.com;

Сохраните файл и проверьте синтаксис:

sudo nginx -t
sudo systemctl reload nginx

Шаг 1: Установка Certbot и плагина Nginx

Обновите список пакетов и установите клиент:

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

Шаг 2: Откройте порты HTTPS в UFW

Если у вас активен ufw‚ разрешите трафик:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

Убедитесь‚ что статус выглядит так:

sudo ufw status
  • OpenSSH ALLOW
  • Nginx Full ALLOW

Шаг 3: Запуск Certbot и выдача сертификата

Выполните команду‚ указав ваши домены:

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

Certbot:

  1. попросит e-mail для уведомлений;
  2. предложит принять условия Let’s Encrypt;
  3. предложит выбор:
  • 1, не перенаправлять HTTP-запросы;
  • 2 — перенаправлять всё на HTTPS (выберите 2).

После успешного завершения вы увидите:

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem

Шаг 4: Проверка результата

  • Откройте браузер и перейдите по https://example.com;
  • Должен быть показан зелёный замок и надпись Connection is secure;
  • Проверьте оценку на SSL Labs — минимум A.

Шаг 5: Настройка автоматического продления

Сертификаты действуют 90 дней‚ но systemd-таймер уже добавлен:

sudo systemctl status certbot.timer

Запускается дважды в день и продлит сертификаты‚ когда до конца срока останется ≤30 дней.

Ручная проверка (вхолостую):

sudo certbot renew --dry-run

Если вывод без ошибок, всё работает.

Шаг 6: Дополнительные советы и частые ошибки

Как отозвать сертификат

sudo certbot revoke --cert-path /etc/letsencrypt/live/example.com/fullchain.pem

Не забудьте AAAA-записи IPv6

Если у вас IPv6-адрес‚ добавьте AAAA-записи‚ иначе Certbot не сможет валидировать домен.

Ошибка «Failed authorization»

  • DNS ещё не обновился (подождите 5-15 минут);
  • В server_name указан не тот домен;
  • Файл конфигурации Nginx не загружен (пропустили reload).

За считанные минуты мы получили:

  • бесплатный SSL-сертификат;
  • автоматическое продление;
  • перенаправление HTTP → HTTPS;
  • оценку A на SSL Labs.

Теперь ваш сайт защищён‚ и вы можете спокойно развивать проект без затрат на коммерческие сертификаты!