раздел 04

Базовая настройка, домен и SSL

Что это

Свежий Droplet - голая Ubuntu. Перед тем как выкладывать продукт, делают обязательную гигиену: обновления, firewall, привязка домена и https. Логика та же, что и на любом сервере.

Зачем

Чтобы сервер был защищён (закрытые порты, свежие пакеты) и доступен по красивому адресу с https, а не по IP без шифрования.

Обновления

apt update && apt upgrade -y

Firewall

У DigitalOcean есть два варианта: облачный Cloud Firewall в панели (управляется снаружи Droplet) или ufw на самом сервере. Для старта достаточно ufw:

ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable

Привязка домена

DigitalOcean умеет управлять DNS сам (Networking - Domains), либо вы настраиваете DNS у своего регистратора. В любом случае нужна A-запись на публичный IP Droplet:

тип: A    имя: @    значение: <IP вашего Droplet>

Через некоторое время домен начнёт вести на сервер.

nginx + SSL

nginx принимает запросы из интернета и направляет их вашему приложению:

apt install nginx -y

SSL (https) - бесплатный сертификат от Let's Encrypt через certbot: ставите certbot, указываете домен, он сам получает и автоматически продлевает сертификат, nginx переключает сайт на https. Детали зависят от стека, но логика всегда: домен на IP, nginx на 80/443, certbot выдаёт https.

Пример

Создали Droplet, обновили пакеты, настроили ufw, в Networking - Domains добавили домен с A-записью на IP, поставили nginx, выпустили сертификат через certbot. Сайт открывается по https://example.com.

Антипаттерны

  • Прод без обновлений и firewall. Открытый сервер быстро находят боты.
  • Сайт без https. Браузеры пометят как небезопасный.
  • Лишние открытые порты. Чем меньше открыто, тем безопаснее.

Что дальше

Разберём DigitalOcean Spaces - S3-совместимое хранилище для файлов и бэкапов.