Решён
Как бесплатно подключить SSL сертификат к сайту?

Игорь Сотников Веб-серверы
5.5k
6

Поднял сайт на VPS (Ubuntu 22.04, Nginx). Домен куплен на reg.ru, DNS настроил, по HTTP все работает. Теперь нужен HTTPS.

Слышал про Let's Encrypt, но не совсем понимаю процесс. Нужно что то ставить на сервер? Сертификат сам обновляется или вручную каждые 3 месяца?

Еще видел что Cloudflare дает бесплатный SSL. Это то же самое или разные вещи?

Нужен именно бесплатный вариант, платить за сертификат 5-10к в год не готов, сайт некоммерческий.

Решение
62
Эксперт • 2 ответа

Certbot + Let's Encrypt. 5 минут.

sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.ru -d www.yourdomain.ru

Certbot сам найдет конфиг Nginx, добавит SSL блок, скачает сертификат и настроит редирект с HTTP на HTTPS. Тебе останется ответить на пару вопросов в терминале (email и согласие с ToS).

Обновление каждые 90 дней. Certbot при установке создает таймер systemd который обновляет сертификат автоматически. Проверить:

sudo systemctl status certbot.timer

Если таймер active, забудь про обновление, все само.

Для проверки что обновление работает:

sudo certbot renew --dry-run

Если написал "Congratulations, all simulated renewals succeeded" - значит все ок.

Аватар Игорь Сотников

Сработало с первого раза, спасибо. Единственное, у меня nginx конфиг лежал нестандартно и certbot не нашел, пришлось через --nginx-server-root указать путь

38
Эксперт • 2 ответа

По поводу Cloudflare - это другая история.

Cloudflare работает как прокси между пользователем и твоим сервером. Он дает SSL между пользователем и Cloudflare ("Flexible" режим), но соединение между Cloudflare и твоим сервером может оставаться незашифрованным.

Есть три режима:

  • Flexible: HTTPS только до Cloudflare, дальше HTTP. Формально замочек в браузере есть, но данные летят открыто от CF до тебя
  • Full: Cloudflare подключается к твоему серверу по HTTPS, но принимает самоподписанный серт. Лучше, но не идеал
  • Full (Strict): Cloudflare требует валидный серт на твоем сервере. Вот это правильно, но тогда тебе все равно нужен Let's Encrypt

Мой совет: ставь Let's Encrypt через certbot напрямую. Cloudflare хорош для CDN и DDoS защиты, но SSL через него это лишняя прослойка для простого некоммерческого сайта.

21
Эксперт • 1 ответ

Совет из опыта: если когда нибудь соберешься переезжать с VPS на VPS, не забудь что сертификаты Let's Encrypt привязаны к конкретному серверу. Они лежат в /etc/letsencrypt/. Можно скопировать всю папку на новый сервер или просто заново выпустить, certbot не ограничивает.

А еще есть лимит: 50 сертификатов на домен в неделю. Если балуешься с тестами, используй --staging флаг, иначе упрешься в рейт лимит и будешь ждать.

sudo certbot --nginx --staging -d yourdomain.ru

Этот серт не будет валидным в браузере, но зато можно тестить скрипты деплоя сколько угодно.

8
Эксперт • 2 ответа

Если у тебя докер, забудь про certbot на хосте. Бери Traefik или nginx-proxy + acme-companion. Там SSL выпускается автоматически для каждого контейнера на основе лейблов. Добавил контейнер с лейблом LETSENCRYPT_HOST=domain.ru и все, серт сам выпустится.

Да, для одного сайта это оверкилл. Но если потом добавишь второй, третий, не придется каждый раз лезть в конфиги nginx.

4
Участник • 1 ответ

А зачем VPS? Бери Vercel или Netlify, там SSL из коробки, деплой через git push, бесплатно для некоммерческих проектов. Серьезно, в 2026 году поднимать Nginx руками для статичного сайта это мазохизм.

Если динамика на бэке нужна, есть Railway, Render. Тоже бесплатные планы с SSL.

Аватар Алексей Зеленцов

У автора уже VPS и Nginx настроены, зачем ему переезжать на Vercel?

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.