Zanim zaczniesz, Twoja domena musi wskazywać na adres IP serwera VPS za pomocą rekordu A (jak to zrobić). Bez tego nie da się wystawić certyfikatu. W przykładach domena to mojadomena.pl.
1. Zainstaluj Nginx i otwórz porty
apt install -y nginx
ufw allow 'Nginx Full'
Jeśli otworzysz adres IP serwera VPS w przeglądarce, zobaczysz już stronę powitalną Nginx.
2. Twoja strona
mkdir -p /var/www/mojadomena
echo '<h1>Działa!</h1>' > /var/www/mojadomena/index.html
Utwórz plik /etc/nginx/sites-available/mojadomena:
server {
listen 80;
server_name mojadomena.pl www.mojadomena.pl;
root /var/www/mojadomena;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
ln -s /etc/nginx/sites-available/mojadomena /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
nginx -t sprawdza, czy nie ma błędów, zanim cokolwiek zostanie zastosowane.
3. Certyfikat SSL
apt install -y certbot python3-certbot-nginx
certbot --nginx -d mojadomena.pl -d www.mojadomena.pl
Certbot poprosi o adres e-mail (aby powiadomić Cię, jeśli coś pójdzie nie tak) i o akceptację warunków. Sam skonfiguruje Nginx, łącznie z przekierowaniem z HTTP na HTTPS.
4. Automatyczne odnawianie
Certyfikaty są ważne 90 dni, a certbot sam je odnawia. Sprawdź, czy odnawianie zadziała:
certbot renew --dry-run
Jeśli coś nie działa
- Certbot nie może zweryfikować domeny: sprawdź poleceniem
nslookup mojadomena.pl, czy domena wskazuje na Twój adres IP i czy port 80 jest otwarty. - Cloudflare: działa także z pomarańczową chmurką; jeśli przy wystawianiu certyfikatu pojawią się problemy, przełącz chmurkę na szarą, wystaw certyfikat i ponownie włącz pomarańczową.
- Błędy 502: jeśli Nginx działa jako proxy dla aplikacji (Node, PHP...), ta aplikacja nie jest uruchomiona albo nasłuchuje na innym porcie.