Podešavanje Ubuntu VPS-a za prvi sajt sa HTTPS-om
Ovo podešavanje Ubuntu VPS-a vodi od novog servera do statičkog sajta sa HTTPS-om. Napravićete zaseban administratorski nalog, podesiti Nginx i DNS, a zatim proveriti sertifikat, novu SSH prijavu i rad posle ponovnog pokretanja.
VPSuntu · Ažurirano · Oko 6 min čitanja
Sadržaj ovog vodiča
Šta vam je potrebno
Pripremite nov Ubuntu 24.04 VPS sa javnom IPv4, početnim sudo nalogom, SSH-om na portu 22 i domenom kojim upravljate. Za lokalne komande potreban je Bash na Linuxu, macOS-u ili WSL-u. Komande za server izvršavaju se u SSH sesiji. Ne nastavljajte ako su putanje iz primera već deo aktivnog sajta.
Svuda zamenite 203.0.113.10 adresom servera, app.example.com svojim domenom, a ubuntu početnim korisničkim imenom provajdera. Otvorite konzolu za oporavak. Pre firewall koraka proverite zahteve slike: Oracle Ubuntu ne koristi UFW granu ovog primera.
Pripremite i proverite novi ključ
Na lokalnom računaru izaberite slobodan naziv i zaštitnu lozinku. Ako datoteka već postoji, koristite drugo ime u svim sledećim koracima.
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pubAko tek kreirate VPS: pošaljite .pub ključ kroz panel pri kreiranju Ubuntu 24.04 instance i potvrdite početni nalog. Preskočite sledeća dva bloka za postojeći server.
Ako prazan VPS već radi: sačuvajte postojeću sesiju. Iz drugog lokalnog terminala kopirajte javni ključ koristeći pristup koji već radi. existing_vps_key zamenite postojećim privatnim ključem; ako koristite lozinku ili agent, izostavite taj -i argument bez izmene autentikacije servera.
scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubU postojećoj sesiji na serveru proverite javnu datoteku i dodajte je u authorized_keys svog početnog naloga. Postojeći ključevi ostaju; dodatni novi red razdvaja i poslednji zapis bez završnog preloma. Ako nema radnog pristupa, prvo koristite provajderov oporavak.
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
fiZa oba puta pre prve potvrde uporedite host ključ. U pouzdanoj konzoli servera za Ed25519 pokrenite:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubSa računara se prijavite novim ključem tek kada se otisci poklapaju. Originalnu sesiju zadržite.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Iz još jednog lokalnog terminala prenesite javni ključ za administratora koji se pravi u sledećem koraku. Ponovno kopiranje iste privremene javne datoteke je očekivano.
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubNapravite administratora sa sopstvenim pristupom
Na serveru proverite getent passwd deploy. Ako nalog postoji, izaberite drugo slobodno ime i promenite ga svuda, uključujući putanje i grupe. Ne prepisujte datoteku ključeva postojećeg korisnika.
Sledeći blok proverava sistem, nudi nadogradnje i pravi nalog. Postavite jaku lozinku za sudo. Install komande podešavaju vlasništvo i ograničene dozvole.
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_keysIz novog terminala na računaru prijavite se kao novi administrator:
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10U toj novoj sesiji testirajte sudo. Posle lozinke treba da ispiše root. Dalji rad nastavite tek kada i prijava i sudo uspeju.
sudo whoamiNginx i dve mrežne zaštite
Na serveru instalirajte Nginx. Mrežni firewall provajdera i firewall operativnog sistema proveravaju se odvojeno.
sudo apt install nginx
sudo systemctl enable --now nginxKod provajdera dozvolite stvarni SSH port sa svoje administrativne adrese i TCP 80/443 za posetioce. Primer koristi SSH 22. Ostavite otvorene konzolu i radnu sesiju.
Oracle Cloud Ubuntu: preskočite ceo naredni UFW blok. UFW može narušiti obavezna pravila slike i sprečiti pokretanje. Sačuvajte postojeća iptables i iSCSI pravila; za HTTP/HTTPS koristite OCI security lists ili NSG i dokumentovana pravila gosta. Ne praznite pravila i ne zamenjujte firewall pakete.
Ostale nove slike: UFW blok koristite samo kada ga provajder podržava i nema drugog obaveznog firewall mehanizma. Prvo dozvolite stvarni SSH port, pa tek onda uključite zaštitu.
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 verbosePosle bilo koje grane proverite potpuno novu SSH vezu. Radna stara sesija ne dokazuje da je nova dozvoljena. Pre izdavanja sertifikata mora uspeti i spoljašnja HTTP provera.
Dodajte svoj Nginx sajt
Na serveru napravite nov direktorijum i zasebnu konfiguraciju. Unesite svoj domen i unutar bloka. Navodnici oko EOF sprečavaju ljusku da proširi Nginx promenljive kao što je $uri. Tekst demo HTML-a u komandi može ostati na engleskom.
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 -tPonovo učitajte samo konfiguraciju koja prolazi test:
sudo systemctl reload nginxPre promene DNS-a proverite sa svog računara baš svoj hostname na IP adresi servera. Treba da vidite naslov primera, ne podrazumevanu Nginx stranicu.
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/Povežite domen i HTTPS
A zapis usmerite na IPv4. AAAA dodajte samo kada IPv6 radi; zastarela IPv6 adresa može odvesti proveru sertifikata drugde. Ovde DNS pokazuje direktno na server, bez proxyja.
Sa računara otvorite http://app.example.com/ bez --resolve. Kada vraća vaš sadržaj, na serveru instalirajte Certbot i Nginx dodatak iz Ubuntu arhive. Potreban je Universe; grešku nedostupnog paketa rešite pre nastavka.
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.timerOdgovorite na pitanja o emailu i uslovima. Certbot menja konfiguraciju i uključuje HTTP→HTTPS preusmeravanje. Ako tajmer nije aktivan, koristite sudo systemctl enable --now certbot.timer. Port 80 ostaje potreban za HTTP proveru i obnovu sertifikata.
Potvrdite rezultat i posle restarta
Na lokalnom računaru proverite preusmeravanje, sertifikat i sadržaj. Nemojte dodavati curl -k: sakrio bi grešku sertifikata.
curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/Dok je server još testni, pokrenite sudo reboot na njemu. Posle očekivanog prekida SSH-a prijavite se kao deploy, proverite systemctl is-active nginx i ponovite spoljašnji HTTPS zahtev. Ako se mašina ne vrati, otvorite konzolu.
Ako provera ne uspe
Na užem ekranu pomerite tabelu vodoravno da vidite ostale kolone.
| Simptom | Prvo proverite |
|---|---|
| SSH timeout | Adresu i oba firewall sloja |
| Odbijen javni ključ | Nalog, privatni ključ i authorized_keys |
| Podrazumevana Nginx stranica | DNS, server_name i uključenu konfiguraciju |
| Greška sertifikata | A/AAAA i dostupnost porta 80 |
| Nginx ne prihvata izmenu | nginx -t i journalctl log |
Za prijavu koristite vodič za SSH probleme. Datoteke sajta, Nginx konfiguraciju, DNS zapise i korake ponovne instalacije sačuvajte van VPS-a. Vežba vraćanja kopije proverava datoteke bez promene aktivnog sajta.
Dodajte nadzor dostupnosti i isteka sertifikata. Baza, Node.js ili druga aplikacija nisu instalirani ovim postupkom: zahtevaju svoje servise, testove i dosledne kopije. Privatne TLS ključeve zaštitite ako ih arhivirate. Kada dodate aplikaciju, izmerite opterećenje.
Pitanja i odgovori
Da li je postupak prikladan za server sa postojećim sajtom?
Najpre ga primenite na izdvojenoj testnoj mašini. Primer stvara datoteke i menja firewall i Nginx; aktivni server zahteva pregled pristupa, sajtova i oporavka.
Šta dobijam na kraju?
Statički sajt sa HTTPS-om i proverenim pristupom. Aplikacijski runtime, bazu ili CMS dodajte zasebno.