VPS Ubuntu / nyiyapake Ubuntu VPS

Nyiyapake Ubuntu VPS kanggo situs HTTPS

Siapake Ubuntu 24.04 VPS anyar kanggo nerbitake situs statis nganggo Nginx lan HTTPS. Pandhuan iki kalebu akun admin dhewe, SSH key, renewal certificate, lan mriksa situs sawise reboot. Akses sing wis bisa digunakake kudu tetep ana nganti akses anyar kabukten bisa.

· Dianyari: · Watara 7 menit kanggo maca

Bagean pandhuan

Siapake server, domain, lan akses pemulihan

Gunakake VPS Ubuntu 24.04 anyar kanthi public IPv4, SSH ing port 22, akun wiwitan sing bisa sudo, lan domain sing bisa diatur. Gawe SSH key sadurunge provisioning. Yen server kosong wis ana, tambahake key liwat akses sing isih bisa digunakake. Prentah ing komputer nganggo Bash ing Linux, macOS, utawa WSL; prentah server ditindakake ing sesi SSH. Mandheg yen path conto wis dienggo situs liyane.

Ganti 203.0.113.10 nganggo IP server lan app.example.com nganggo hostname dhewe. Loro-lorone mung conto dokumentasi. Ganti akun ubuntu yen panyedhiya nggunakake jeneng liya. Bukak recovery console dhisik. Priksa aturan firewall image: Ubuntu ing Oracle Cloud nduweni cara dhewe lan kudu ngliwati blok UFW.

Gawe key anyar utawa tambahake liwat akses sing wis ana

Ing komputer, gawe key khusus lan wenehana passphrase. Yen jeneng file wis ana, gunakake jeneng anyar ing kabeh langkah. File .pub iku public key; private key tetep disimpen ing komputer.

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

Kanggo VPS anyar: saiki gawe server Ubuntu 24.04 lan lebokake public key iki ing kolom SSH key panyedhiya. Priksa jeneng akun wiwitan, banjur terus menyang verifikasi host fingerprint. Ora perlu nindakake prentah kanggo server sing wis ana.

Kanggo VPS kosong sing wis digawe: aja nutup sesi SSH sing isih bisa. Saka terminal komputer liyane, salin public key nganggo cara login lawas. Ganti existing_vps_key nganggo private key sing saiki digunakake. Yen login nganggo password utawa SSH agent, tinggalake pilihan -i ~/.ssh/existing_vps_key; aja ngganti pranatan autentikasi server.

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

Ing sesi server sing lawas, priksa file public key banjur tambahake menyang authorized_keys akun wiwitan. Prentah append njaga key sing wis ana; newline tambahan nangani baris pungkasan tanpa newline. Iki kanggo akun wiwitan duweke dhewe. Yen ora ana akses sing bisa digunakake, lakoni prosedur pemulihan panyedhiya dhisik.

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

Ing loro cara kasebut, cocogake host fingerprint sadurunge nampa sambungan kapisan. Kanggo host key Ed25519, jalanake iki ing recovery console sing dipercaya:

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

Saka komputer, coba sambungan anyar nganggo key anyar. Aja nutup akses lawas nganti kasil.

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

Saka terminal komputer liyane, salin public key kanggo akun admin kapisah ing langkah sabanjure. Nyalin file public key sauntara iki maneh ora ngganti private key.

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

Gawe akun admin lan coba login kapisah

Ing server, priksa getent passwd deploy dhisik. Asile kudune ora nuduhake akun. Yen deploy wis ana, pilih jeneng sing durung dienggo banjur ganti kabeh jeneng akun, grup, lan home path ing conto. Iki supaya authorized_keys duweke akun liya ora ketimpa.

Priksa image lan sumber daya, waca dhaptar upgrade, banjur gawe admin. Wenehana password kuwat kanggo panjaluk sudo. Prentah install ngatur kepemilikan lan ijin file key.

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

Ing terminal komputer anyar, login dadi admin anyar:

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

Ing sesi server anyar iki, coba sudo. Sawise password akun deploy ditampa, asile kudu root. Terusake saka sesi iki yen login lan sudo wis kasil; tetep simpen akses wiwitan.

sudo whoami

Pasang Nginx lan gunakake firewall sing didhukung image

Pasang Nginx ing server. Firewall panyedhiya lan firewall ing Ubuntu padha-padha mengaruhi akses. Recovery console lan sesi SSH sing bisa kudu tetep kasedhiya.

sudo apt install nginx
sudo systemctl enable --now nginx

Ing firewall panyedhiya, idini TCP 22 saka lokasi admin lan TCP 80/443 kanggo pengunjung situs. Yen SSH nganggo port liyane, jaga aturan port kasebut. Aturan jaringan ora mbukak port sing isih diblokir firewall guest.

Ubuntu ing Oracle Cloud: tinggalake kabeh blok UFW ing ngisor iki. Oracle ngelingake yen UFW bisa ngganggu aturan firewall image nganti server ora bisa boot. Jaga aturan iptables bawaan, kalebu aturan iSCSI kanggo boot volume lan block volume. Atur OCI security list utawa NSG lan aturan guest kanggo HTTP/HTTPS miturut dokumentasi. Aja flush aturan utawa ngganti paket firewall bawaan.

Cabang UFW kanggo image Ubuntu anyar liyane: gunakake mung yen panyedhiya ndhukung UFW lan image ora mbutuhake firewall liyane. Idini port SSH sing nyata sadurunge enable; conto iki nganggo port 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

Sawise salah siji cabang, coba login SSH anyar. Sesi sing wis mbukak ora mbuktekake sambungan anyar bisa. Tes HTTP saka njaba ing langkah sabanjure uga kudu kasil sadurunge njaluk certificate.

Terbitake kaca ing konfigurasi Nginx dhewe

Ing server, gawe document root lan konfigurasi anyar. Ganti hostname ing blok iki. Jaga tandha EOF sing diwenehi petik supaya shell ora ngembangake variabel Nginx kayata $uri.

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 -t

Reload mung yen tes konfigurasi kasil:

sudo systemctl reload nginx

Saka komputer, coba hostname ing IP server sadurunge ngganti DNS. Asile kudu judhul kaca sing digawe, dudu kaca sambutan Nginx bawaan.

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

Sambungake DNS lan pasang certificate HTTPS

Gawe DNS A record menyang IPv4 VPS. Tambahake AAAA mung yen IPv6 ing server iki wis bisa digunakake. AAAA lawas bisa ngarahake pengunjung lan validasi certificate menyang panggonan salah. Conto iki nganggep DNS langsung menyang VPS tanpa proxy.

Saka komputer, bukak http://app.example.com/ tanpa --resolve. Yen kaca wis bener, pasang Certbot saka arsip Ubuntu lan plugin Nginx ing server. Paket iki mbutuhake repository Universe; rampungake masalah package-not-found dhisik.

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

Tindakake panjaluk email lan syarat layanan. Certbot ngowahi konfigurasi situs lan nguripake redirect HTTP menyang HTTPS. Priksa timer renewal; yen durung aktif, gunakake sudo systemctl enable --now certbot.timer. Port 80 kudu tetep bisa digayuh kanggo validasi lan renewal.

Priksa saka njaba lan sawise reboot

Saka komputer, priksa redirect, certificate, lan isi kaca. HTTP kudu pindhah menyang HTTPS; HTTPS kudu lolos validasi lan nuduhake judhul sing bener. Aja nambah pilihan curl -k amarga ndhelikake masalah certificate.

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

Nalika isih dadi server tes, jalanake sudo reboot ing server. Sambung maneh dadi deploy, priksa systemctl is-active nginx, banjur baleni panjaluk HTTPS saka njaba. Reboot pancen medhot SSH; gunakake console yen server ora bali.

Yen ana tes gagal, temokake sebabe lan simpen cara mulihake

Ing layar cilik, geser tabel menyang sisih kanggo ndeleng kabeh kolom.

Tandha masalahSing dipriksa dhisik
SSH timeoutAlamat, firewall panyedhiya lan guest, recovery console
Permission denied (publickey)Akun, private key, lan ijin authorized_keys
Kaca Nginx bawaan katonTujuan DNS, server_name, lan site sing aktif
Validasi certificate gagalA/AAAA umum lan akses port 80
Nginx gagal sawise owah-owahansudo nginx -t lan sudo journalctl -u nginx -n 50 --no-pager

Gunakake pandhuan masalah SSH supaya masalah jaringan, service, lan key ora dicampur. Simpen file situs, konfigurasi Nginx, DNS, lan langkah mbangun maneh ing njaba VPS. Coba mulihake ing mesin kapisah. Yen private key certificate dibackup, panyimpenane kudu dilindhungi. Pasang tandha kasedhiyan situs lan certificate sing meh kadaluwarsa.

Latihan backup lan restore file mriksa salinan tanpa nimpa situs sing mlaku. Recovery lengkap uga mbutuhake aset liyane, certificate, lan konfigurasi service. Iki situs statis; runtime aplikasi utawa database mbutuhake konfigurasi lan cara backup dhewe. Ukur sumber daya nalika nambah komponen kasebut.

Pitakon lan wangsulan

Apa prentah iki bisa langsung kanggo situs sing wis mlaku?

Coba ing VPS kapisah dhisik. Conto iki nggawe file, bisa nguripake firewall, lan ngidini Certbot ngowahi Nginx. Server lawas kudu dipriksa situs, aturan akses, lan cara recovery-ne.

Apa iki uga masang WordPress, Node.js, utawa database?

Ora. Asile situs HTTPS statis. Sawise iki kasil, tambahake runtime aplikasi lan tes startup, kesehatan service, lan pemulihan data.

Dokumentasi lan sumber

Kanggo Ubuntu 24.04 VPS anyar, DNS langsung, lan SSH port 22. Ubuntu Oracle Cloud kudu ngliwati UFW. Conto adhedhasar dokumentasi; kabeh langkah durung dites ing saben image panyedhiya.

Pandhuan sing gegandhengan