Одного вечера достаточно, чтобы пройти путь от нуля до сайта с HTTPS на собственном сервере. Этот гайд проводит по всей дороге: домен, DNS, веб-сервер и сертификат, каждая команда прилагается.

Что понадобится

  • Домен у любого регистратора (Namecheap, Porkbun, REG и другие), от нескольких евро в год.
  • VPS: для старта хватит младшего тарифа Micro.
  • Тридцать-шестьдесят минут времени.

Шаг 1: направьте домен на сервер

В DNS-настройках регистратора создайте две записи, где 203.0.113.10 - IP сервера из личного кабинета:

A     @      203.0.113.10
A     www    203.0.113.10

Обновление обычно занимает минуты, изредка пару часов. Проверка: dig +short вашдомен.com.

Хотите CDN и дополнительный щит от DDoS перед сайтом? Домен можно завести за Cloudflare позже, не трогая сервер: настройка ниже останется той же.

Шаг 2: подготовьте сервер

Закажите VPS с Ubuntu 24.04, подключитесь по SSH и обновите систему:

ssh [email protected]
apt update && apt -y upgrade
apt -y install nginx
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp
ufw --force enable

Откройте http://203.0.113.10 в браузере: приветственная страница nginx подтверждает, что веб-сервер жив и достижим.

Шаг 3: отдайте свой контент

Для статического сайта разложите файлы и опишите сайт для nginx:

mkdir -p /var/www/mysite
echo '<h1>Работает</h1>' > /var/www/mysite/index.html

cat > /etc/nginx/sites-available/mysite <<'CONF'
server {
    listen 80;
    server_name вашдомен.com www.вашдомен.com;
    root /var/www/mysite;
    index index.html;
}
CONF
ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Приложение на PHP, Python или Node встраивается в ту же схему: оно слушает локальный порт, а nginx проксирует на него строчкой proxy_pass вместо root.

Шаг 4: бесплатный HTTPS от Let's Encrypt

apt -y install certbot python3-certbot-nginx
certbot --nginx -d вашдомен.com -d www.вашдомен.com

Certbot получает сертификат, переписывает конфиг nginx под HTTPS и настраивает автопродление. Проверка: certbot renew --dry-run.

Шаг 5: финальный проход

  • https://вашдомен.com открывается с замком из любой сети.
  • curl -I http://вашдомен.com отвечает редиректом на HTTPS.
  • Снапшот или копия контента живёт где-то вне сервера.

Если что-то отказывается открываться снаружи, чеклист по портам находит виновника за пять минут.