Başlamadan önce alan adınızın bir A kaydıyla VPS'in IP adresine yönlendirilmiş olması gerekir (nasıl yapılır). Bu olmadan sertifika düzenlenemez. Örneklerde alan adı olarak alanadiniz.com kullanılıyor.
1. Nginx'i kurun ve portları açın
apt install -y nginx
ufw allow 'Nginx Full'
VPS'in IP adresini tarayıcıda açtığınızda Nginx'in karşılama sayfasını görürsünüz.
2. Web siteniz
mkdir -p /var/www/alanadiniz
echo '<h1>Çalışıyor!</h1>' > /var/www/alanadiniz/index.html
/etc/nginx/sites-available/alanadiniz dosyasını oluşturun:
server {
listen 80;
server_name alanadiniz.com www.alanadiniz.com;
root /var/www/alanadiniz;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
ln -s /etc/nginx/sites-available/alanadiniz /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
nginx -t, herhangi bir şeyi uygulamadan önce hata olup olmadığını kontrol eder.
3. SSL sertifikası
apt install -y certbot python3-certbot-nginx
certbot --nginx -d alanadiniz.com -d www.alanadiniz.com
Sizden bir e-posta adresi (bir sorun olursa sizi uyarmak için) ve koşulları kabul etmenizi isteyecektir. Certbot, HTTP'den HTTPS'ye yönlendirme de dahil olmak üzere Nginx'i kendisi yapılandırır.
4. Otomatik yenileme
Sertifikalar 90 gün geçerlidir ve certbot onları kendiliğinden yeniler. Yenilemenin sorunsuz çalışacağını kontrol edin:
certbot renew --dry-run
Bir sorun çıkarsa
- Certbot alan adını doğrulayamıyor:
nslookup alanadiniz.comile alan adının IP adresinizi gösterdiğini ve 80 portunun açık olduğunu kontrol edin. - Cloudflare: turuncu bulut açıkken de çalışır; sertifika alınırken sorun çıkarsa bulutu griye çevirin, sertifikayı alın ve bulutu yeniden turuncuya getirin.
- 502 hataları: Nginx bir uygulamaya (Node, PHP...) proxy olarak bağlanıyorsa o uygulama çalışmıyordur ya da başka bir portu dinliyordur.