Prakticky / První web s HTTPS

Nastavení Ubuntu VPS pro první web

Připravte nový VPS s Ubuntu 24.04 LTS pro malý statický web. Vytvoříte samostatného správce, nastavíte přihlášení klíčem, Nginx, DNS a HTTPS a ověříte obnovu certifikátu i návrat webu po restartu.

VPSuntu · Aktualizováno: 27. září 2026 · asi 5 min čtení

Obsah návodu

Připravte nový server, doménu a záchranný přístup

Postup počítá s novým Ubuntu 24.04, veřejnou IPv4, SSH na portu 22, počátečním účtem se sudo a vlastní doménou. Klíč vytvořte před založením instance. Pro již vytvořený prázdný server je níže alternativní větev přes fungující přístup. Příkazy klienta běží v Bash na Linuxu, macOS či WSL, serverové příkazy uvnitř SSH. Pokud cesty patří existujícímu webu, zastavte se.

Nahraďte 203.0.113.10 skutečnou IP a app.example.com vlastním názvem. Účet ubuntu nahraďte výchozím účtem poskytovatele. Před úpravami otevřete záchrannou konzoli. Ověřte dokumentaci firewallu image; Oracle Ubuntu vyžaduje jinou větev než UFW.

Vytvořte klíč a ověřte první spojení

Na počítači vytvořte vlastní klíč s přístupovou frází. Existující soubor nepřepisujte; případný nový název použijte všude. Soukromý soubor zůstává na počítači, .pub je veřejný.

mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pub

Nový VPS: nyní vytvořte Ubuntu 24.04 se zobrazeným veřejným klíčem v poli SSH-key. Potvrďte uživatelské jméno a přeskočte následující příkazy pro existující server.

Již vytvořený prázdný VPS: ponechte původní SSH otevřené. Z dalšího lokálního terminálu přeneste veřejný klíč pomocí dosavadního přístupu. existing_vps_key nahraďte stávajícím soukromým klíčem. Při přihlášení heslem nebo agentem vynechte parametr -i ~/.ssh/existing_vps_key; neměňte kvůli tomu autentizační politiku.

scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pub

V původní serverové relaci ověřte veřejný klíč a připojte jej k authorized_keys svého počátečního účtu. Připojení zachovává existující klíče; nový řádek řeší i soubor bez koncového odřádkování. Nemáte-li funkční přístup, nejprve použijte obnovu poskytovatele.

if ssh-keygen -lf ~/ubuntu-vps-admin.pub; then
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    printf '\n' >> ~/.ssh/authorized_keys
    cat ~/ubuntu-vps-admin.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
fi

Pro obě větve před přijetím prvního spojení porovnejte otisk s veřejným host key v důvěryhodné konzoli. Pro Ed25519 spusťte v konzoli:

sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Na počítači ověřte nové přihlášení; dosavadní přístup zatím nezavírejte.

ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10

Z dalšího lokálního terminálu nahrajte veřejný klíč pro správce vytvářeného v dalším kroku. Opakovaný přenos tohoto dočasného souboru je v pořádku.

scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pub

Vytvořte samostatného správce

Na serveru nejprve spusťte getent passwd deploy. Neměl by vrátit účet. Pokud existuje, zvolte nepoužité jméno a nahraďte i všechny domovské cesty a názvy skupin. Jinak byste mohli přepsat klíče jiného uživatele.

Ověřte image, prohlédněte aktualizace a vytvořte správce se silným heslem pro sudo. Příkazy install nastaví vlastníka a omezená oprávnění klíče.

cat /etc/os-release
free -h
df -h /
sudo apt update
sudo apt upgrade
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo install -m 600 -o deploy -g deploy ~/ubuntu-vps-admin.pub /home/deploy/.ssh/authorized_keys

V dalším terminálu na počítači otevřete nové připojení:

ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10

Uvnitř nové relace ověřte sudo. Po přijetí hesla má vrátit root. Pokračujte v této relaci teprve po úspěchu obou kontrol, původní přístup ponechte.

sudo whoami

Nainstalujte Nginx a použijte správnou větev firewallu

Na serveru nainstalujte a zapněte Nginx. Síťový firewall poskytovatele i firewall hosta ovlivňují dostupnost; při změnách zachovejte konzoli a fungující SSH.

sudo apt install nginx
sudo systemctl enable --now nginx

U poskytovatele povolte TCP 22 z místa správy a TCP 80/443 návštěvníkům. Používáte-li jiný SSH port, zachovejte jej. Síťová pravidla neotevřou port blokovaný na hostu.

Oracle Cloud Ubuntu: následující UFW blok celý přeskočte. UFW může narušit nezbytná pravidla image včetně iSCSI boot a block volumes a zabránit spuštění. Ponechte dodaná iptables pravidla i balíčky firewallu; nastavte OCI security lists/NSG a zdokumentovaná pravidla hosta pro HTTP/HTTPS.

Ostatní nové Ubuntu image: UFW větev použijte jen tehdy, pokud ji poskytovatel podporuje a image nevyžaduje jinou řízenou konfiguraci. Povolte skutečný SSH port před zapnutím; příklad používá 22.

sudo apt install ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

Po kterékoli větvi otestujte nové SSH přihlášení. Otevřená relace sama nový přístup nepotvrzuje. Před žádostí o certifikát musí projít i vnější HTTP kontrola níže.

Zveřejněte stránku v samostatné konfiguraci Nginx

Na serveru vytvořte nový kořen webu a konfiguraci. Uvnitř bloku nahraďte hostname. Ponechte citované značky EOF, aby shell nerozbalil proměnné Nginx jako $uri.

sudo install -d -m 755 /var/www/first-site
printf '%s\n' '<!doctype html><html lang="cs"><title>První nasazení</title><h1>Tuto stránku poskytuje Ubuntu VPS</h1></html>' | sudo tee /var/www/first-site/index.html
sudo tee /etc/nginx/sites-available/first-site >/dev/null <<'EOF'
server {
    listen 80;
    listen [::]:80;
    server_name app.example.com;
    root /var/www/first-site;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}
EOF
sudo ln -s /etc/nginx/sites-available/first-site /etc/nginx/sites-enabled/first-site
sudo nginx -t

Pouze pokud nginx -t uspěje, načtěte konfiguraci znovu:

sudo systemctl reload nginx

Na svém počítači vyžádejte doménu přímo z IP ještě před změnou DNS. Očekávejte vlastní nadpis, ne výchozí stránku Nginx.

curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/

Nastavte DNS a vystavte certifikát

Vytvořte A záznam domény s IPv4 VPS. AAAA přidávejte jen s funkční IPv6; chybný záznam může odvést návštěvníka i ověření certifikátu jinam. Příklad používá přímé DNS bez proxy.

Na počítači otevřete http://app.example.com/ bez --resolve. Až vrací váš web, na serveru nainstalujte Certbot z archivu Ubuntu s pluginem Nginx. Je potřeba repozitář Universe; chybu nenalezeného balíčku vyřešte před pokračováním.

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com --redirect
sudo nginx -t
sudo certbot renew --dry-run
systemctl list-timers --all certbot.timer

Dokončete výzvy k e-mailu a podmínkám. Certbot upraví konfiguraci a přesměruje HTTP na HTTPS. Ověřte plán obnovy; není-li timer aktivní, použijte sudo systemctl enable --now certbot.timer. Pro HTTP ověřování i obnovu ponechte port 80 dostupný.

Ověřte web zvenčí a po restartu

Na počítači ověřte přesměrování, certifikát i obsah. HTTP má přesměrovat na HTTPS a zabezpečený požadavek zobrazit nadpis. Nepřidávejte curl -k, který skryje chyby certifikátu.

curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/

Ještě v testovacím provozu spusťte na serveru sudo reboot. Po návratu se připojte jako deploy, ověřte systemctl is-active nginx a zopakujte vnější HTTPS požadavek. Restart záměrně ukončí SSH; při neúspěšném návratu použijte konzoli.

Vyřešte konkrétní chybu a připravte obnovu

Tabulku lze posouvat vodorovně.

PříznakCo zkontrolovat
SSH timeoutAdresu, oba firewally a konzoli
Permission denied (publickey)Účet, klíč a oprávnění authorized_keys
Výchozí stránka NginxCíl DNS, server_name a zapnutý site
Chyba certifikátuVeřejné A/AAAA a port 80
Nginx po změně nefungujesudo nginx -t a sudo journalctl -u nginx -n 50 --no-pager

Přístup řešte podle konkrétní SSH chyby. Uchovávejte soubory webu, konfiguraci Nginx, DNS a postup obnovy mimo VPS. Obnovu ověřte na jiném stroji; případné kopie soukromých klíčů certifikátů chraňte.

Pro začátek použijte nácvik obnovy souborů. Neobsahuje celý web, databázi ani certifikáty. Přidejte dohled dostupnosti a expirace certifikátů; dnešní úspěch nehlídá příští obnovu.

Postup nasazuje statické soubory. Databáze či aplikační runtime potřebuje vlastní konfiguraci, zálohu a kontrolu startu. Jeho zdroje změřte podle výběru konfigurace.

Postup vychází z dokumentace uvedené v anglické verzi a cílí na nový Ubuntu 24.04 VPS. Nejde o test vašeho konkrétního serveru. Každý krok přizpůsobte skutečnému image, portům a účtům.

Časté otázky

Mohu příkazy použít na běžícím webu?

Nejprve na samostatném testovacím VPS. Postup vytváří soubory, mění firewall a nechává Certbot upravit Nginx; existující prostředí vyžaduje kontrolu současných služeb a obnovy.

Nainstaluje to WordPress nebo databázi?

Ne. Výsledkem je statický HTTPS web. Až funguje, přidejte požadovaný runtime a samostatně otestujte jeho spuštění i obnovu dat.

Proč znovu ověřovat SSH po změně firewallu?

Již otevřená relace může zůstat dostupná i při chybě blokující nové spojení. Ověřte nový login a zachovejte konzoli pro obnovu.

Související úkoly

Pokračujte podle potřeby.

Porovnejte dostupné prostředky.

Vyjděte z ověřených požadavků a možností obnovy.

Prohlédnout servery

Partnerský odkaz · Ověřte podmínky poskytovatele.