Nastavenie Ubuntu VPS pre prvý web s HTTPS
Nastavenie Ubuntu VPS si prejdeme na čerstvom Ubuntu 24.04 LTS. Výsledkom bude statický web s Nginx, samostatným správcom, kľúčovým prístupom SSH a HTTPS. Nakoniec overíme obnovu certifikátu a návrat webu po reštarte.
VPSuntu · Aktualizované · Približne 6 min čítania
Obsah návodu
Pripravte server, doménu a konzolu
Potrebujete nový Ubuntu 24.04 VPS s verejnou IPv4, SSH na porte 22, úvodným účtom so sudo a doménou, ktorú ovládate. Kľúč vytvorte ešte pred objednaním stroja. Pre už vytvorený prázdny server je nižšie vetva cez fungujúci prístup. Ak ukážkové cesty patria existujúcemu webu, zastavte sa a použite samostatné testovacie prostredie.
Príkazy pre počítač používajú Bash na Linuxe, macOS alebo WSL; príkazy pre server patria do SSH. Všade nahraďte 203.0.113.10 vlastnou IP a app.example.com vlastným hostname. Názov ubuntu nahraďte úvodným účtom poskytovateľa. Pred zmenou prístupu alebo firewallu otvorte konzolu obnovy a skontrolujte pravidlá konkrétneho obrazu.
Vytvorte kľúč a overte prvé spojenie
Na počítači vytvorte kľúč s heslovou frázou. Existujúci súbor neprepisujte; prípadný nový názov používajte v celom postupe. Súkromný kľúč zostáva na počítači.
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pubNový server: teraz vytvorte Ubuntu 24.04 a do poľa SSH vložte verejný obsah súboru .pub. Potvrďte meno úvodného účtu a preskočte nasledujúce dva príkazy pre existujúci server.
Už vytvorený prázdny server: zachovajte fungujúcu reláciu. Z druhého lokálneho terminálu preneste nový verejný kľúč cez existujúce overenie. existing_vps_key nahraďte platným súkromným kľúčom; ak používate heslo alebo agenta, vynechajte príslušné -i. Nemeňte politiku overovania servera.
scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubV existujúcej serverovej relácii overte verejný súbor a pripojte ho k authorized_keys úvodného účtu. Príkaz zachová doterajšie záznamy aj správne oddelenie posledného riadka. Ak nemáte žiadny funkčný prístup, najprv použite obnovu poskytovateľa.
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
fiPri oboch vetvách pred prvým potvrdením servera porovnajte odtlačok. Pre hostiteľský kľúč Ed25519 spustite v dôveryhodnej konzole servera:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubZ počítača otvorte nové spojenie. Prijmite iba zodpovedajúci overený kľúč; pôvodný prístup zatiaľ nezatvárajte.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Z ďalšieho lokálneho terminálu preneste verejný kľúč pre samostatného správcu. Opakované prenesenie tohto dočasného verejného súboru je v poriadku.
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubVytvorte správcu a vyskúšajte sudo
Na serveri najprv vykonajte getent passwd deploy. Nemal by sa vrátiť účet. Ak existuje, zvoľte iné voľné meno a nahraďte ho v celom postupe vrátane ciest a skupín; neprepisujte cudzí authorized_keys.
Overte systém a zdroje, prezrite aktualizácie a vytvorte správcu. Nastavte silné heslo na výzvy sudo. Príkazy install nastavia vlastníctvo aj obmedzené oprávnenia kľúčového súboru.
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_keysNa počítači sa v novom termináli prihláste ako nový správca:
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10V tejto novej serverovej relácii otestujte sudo. Po zadaní hesla účtu deploy má vypísať root. Pokračujte, až keď fungujú obe kontroly; pôvodný prístup zachovajte.
sudo whoamiNainštalujte Nginx a zvoľte správny firewall
Na serveri nainštalujte a spustite Nginx. Sieťový firewall poskytovateľa a firewall Ubuntu sú samostatné vrstvy.
sudo apt install nginx
sudo systemctl enable --now nginxV sieti poskytovateľa povoľte TCP 22 zo svojej správcovskej adresy a TCP 80/443 pre návštevníkov. Ak používate iný SSH port, zachovajte jeho pravidlo. Konzolu obnovy a funkčné SSH nechajte dostupné.
Ubuntu v Oracle Cloud: preskočte celý nasledujúci blok UFW. Zachovajte dodané iptables pravidlá vrátane iSCSI; UFW môže narušiť dôležité pravidlá obrazu aj štart systému. HTTP/HTTPS povoľte v OCI security list alebo NSG aj dokumentovaným spôsobom vo firewalle hosťa. Pravidlá nevyprázdňujte ani nenahrádzajte firewallové balíky obrazu.
Ostatné čerstvé obrazy podporujúce UFW: nasledujúci blok použite len vtedy, keď poskytovateľ UFW povoľuje a obraz nemá iný spravovaný firewall. Pred aktiváciou povoľte skutočný SSH port; tu je to 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 verbosePo každej vetve skúste nové SSH spojenie. Už otvorená relácia nepotvrdzuje prijímanie nových spojení. Pred certifikátom musí fungovať aj vonkajšia HTTP kontrola v ďalšom kroku.
Publikujte stránku v samostatnej konfigurácii
Na serveri vytvorte nový koreň webu a konfiguráciu. Hostname nahraďte aj vo vnútri bloku. Zachovajte úvodzovky pri EOF: bránia shellu rozbaliť premenné Nginx, napríklad $uri. Text ukážkovej stránky je zámerne ponechaný ako v príkazovom príklade.
sudo install -d -m 755 /var/www/first-site
printf '%s\n' '<!doctype html><html lang="en"><title>First deployment</title><h1>Ubuntu VPS is serving this page</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 -tIba po úspešnom nginx -t načítajte konfiguráciu:
sudo systemctl reload nginxZ počítača otestujte hostname na IP servera ešte pred zmenou DNS. Očakávajte nadpis vytvorenej stránky, nie predvolenú uvítaciu stránku Nginx.
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/Nastavte DNS a vydajte certifikát
Pridajte DNS A záznam s IPv4 servera. AAAA publikujte len pre fungujúce IPv6; starý záznam môže poslať návštevníkov aj overovanie certifikátu inde. Tento postup predpokladá priame DNS bez proxy.
Z počítača načítajte http://app.example.com/ bez --resolve. Keď vracia vašu stránku, na serveri nainštalujte Certbot a Nginx plugin z archívu Ubuntu. Vyžadujú komponent Universe; chybu nenájdeného balíka najprv vyriešte.
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.timerDokončite výzvy na email a podmienky. Certbot upraví konfiguráciu a presmeruje HTTP na HTTPS. Overte naplánovaný časovač obnovy; ak je neaktívny, povoľte sudo systemctl enable --now certbot.timer. Port 80 musí zostať dostupný pre overovanie a obnovu HTTP certifikátu.
Overte web zvonka a po reštarte
Na počítači skontrolujte presmerovanie, certifikát a obsah. HTTP má presmerovať na HTTPS a HTTPS má vrátiť ukážkový nadpis. Nepoužívajte -k, ktoré skryje chyby overenia certifikátu.
curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/Kým je nasadenie skúšobné, na serveri vykonajte sudo reboot. SSH sa tým zámerne ukončí. Po návrate sa prihláste ako deploy, skontrolujte systemctl is-active nginx a zopakujte vonkajší HTTPS test. Ak sa stroj nevráti, použite konzolu.
Odstráňte konkrétnu chybu a pripravte obnovu
Na malom displeji posuňte tabuľku do strán, aby ste videli všetky stĺpce.
| Príznak | Prvá kontrola |
|---|---|
| SSH vyprší | Adresa, oba firewally a konzola |
| Permission denied (publickey) | Používateľ, súkromný kľúč a oprávnenia authorized_keys |
| Predvolená stránka Nginx | Cieľ DNS, server_name a povolená konfigurácia |
| Certifikát sa nedá overiť | Verejné A/AAAA a dostupný port 80 |
| Nginx po zmene nefunguje | nginx -t a journalctl pre nginx |
Pri probléme s prístupom pokračujte diagnostikou SSH. Súbory webu, konfiguráciu, DNS a postup opätovného nasadenia uchovávajte mimo VPS. Cvičenie obnovy súborov otestuje nezávislú kópiu bez prepísania živého webu.
Pridajte sledovanie dostupnosti a platnosti certifikátu. Toto je statický web; databáza a aplikačný runtime vyžadujú vlastné nastavenie aj konzistentnú zálohu. TLS súkromné kľúče pri zálohovaní potrebujú chránené úložisko. Merajte skutočnú záťaž, keď pridáte ďalšie služby.
Otázky a odpovede
Môžem príkazy použiť na existujúcom produkčnom webe?
Najprv použite samostatný testovací VPS. Príklad vytvára súbory, mení firewall a povoľuje Certbotu upraviť Nginx. Existujúce weby, prístup a obnovu treba vopred preskúmať.
Nainštaluje sa aj WordPress alebo databáza?
Nie. Výsledkom je statický HTTPS web. Aplikáciu, runtime a databázu pridajte samostatne s kontrolou štartu a obnovy dát.