فارسی (Farsi)
€EUR

نصب Nginx با گواهی SSL (Certbot)

4 min
سرور مجازی (VPS/VDS)

این راهنما به شما نشان می‌دهد چگونه Nginx را نصب کنید، یک وب‌سایت پیکربندی کنید و با Certbot یک گواهی SSL رایگان بگیرید تا سایت خود را با HTTPS امن کنید.

📋 پیش‌نیازها

  • یک سرور VPS با دسترسی روت (root) یا sudo
  • یک دامنه که به IP سرور شما اشاره کند (مثال: monsite.com)
  • پورت‌های 80 (HTTP) و 443 (HTTPS) باز در فایروال شما

نکته: اگر هنوز دامنه ندارید، می‌توانید با IP آزمایش کنید، اما Certbot برای گواهی‌های SSL به دامنه نیاز دارد.

💡 پیشنهاد زیرساخت

Nginx و Certbot روی VPSهای NVMe ما عالی کار می‌کنند؛ این سرورها عملکرد دیسک فوق‌العاده‌ای برای ارائه سریع وب‌سایت‌های شما دارند. دیسک‌های NVMe زمان پاسخ بهینه را برای بازدیدکنندگان شما تضمین می‌کنند.

🚀 مرحله 1: نصب Nginx

به‌روزرسانی بسته‌ها

Bash
sudo apt update

نصب Nginx

Bash
sudo apt install nginx -y

بررسی نصب

Bash
# Vérifier que Nginx est installé nginx -v # Vérifier que Nginx est démarré sudo systemctl status nginx

اگر همه‌چیز درست باشد، باید active (running) را ببینید.

مجاز کردن Nginx در فایروال (UFW)

Bash
# Autoriser HTTP (port 80) sudo ufw allow 'Nginx HTTP' # Autoriser HTTPS (port 443) sudo ufw allow 'Nginx HTTPS' # Vérifier les règles sudo ufw status

آزمایش Nginx

مرورگر خود را باز کنید و به این نشانی بروید:

  • http://votre-ip-serveur یا
  • http://votre-domaine.com

باید صفحه پیش‌فرض Nginx را ببینید که تأیید می‌کند نصب درست کار می‌کند!

📝 مرحله 2: پیکربندی وب‌سایت شما

ساخت پوشه برای سایت شما

Bash
# Créer le dossier (remplacez monsite.com par votre domaine) sudo mkdir -p /var/www/monsite.com # Donner les permissions sudo chown -R $USER:$USER /var/www/monsite.com sudo chmod -R 755 /var/www/monsite.com

ساخت یک صفحه HTML ساده

Bash
# Créer la page d'index nano /var/www/monsite.com/index.html

این محتوای ساده را اضافه کنید:

HTML
1<!DOCTYPE html> 2<html lang="fr"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Mon Site Web</title> 7</head> 8<body> 9 <h1>Bienvenue sur mon site !</h1> 10 <p>Votre site web fonctionne correctement avec Nginx.</p> 11</body> 12</html>

با Ctrl + X، سپس Y، سپس Enter ذخیره کنید.

ساخت پیکربندی Nginx

Bash
# Créer le fichier de configuration sudo nano /etc/nginx/sites-available/monsite.com

این پیکربندی را اضافه کنید:

Nginx
1server { 2 listen 80; 3 listen [::]:80; 4 5 server_name monsite.com www.monsite.com; 6 7 root /var/www/monsite.com; 8 index index.html; 9 10 location / { 11 try_files $uri $uri/ =404; 12 } 13}

مهم: monsite.com را در همه جاها با نام دامنه واقعی خود جایگزین کنید.

فایل را ذخیره کنید.

فعال‌سازی سایت

Bash
# Créer un lien symbolique pour activer le site sudo ln -s /etc/nginx/sites-available/monsite.com /etc/nginx/sites-enabled/ # Vérifier la configuration Nginx sudo nginx -t

اگر syntax is ok و test is successful را دیدید، همه‌چیز درست است!

حذف سایت پیش‌فرض (اختیاری)

Bash
# Supprimer le site par défaut sudo rm /etc/nginx/sites-enabled/default # Recharger Nginx sudo systemctl reload nginx

آزمایش سایت شما

مرورگر خود را باز کنید و به http://votre-domaine.com بروید. باید صفحه HTML خود را ببینید!

🔒 مرحله 3: نصب Certbot و دریافت گواهی SSL

Certbot ابزاری است که امکان دریافت خودکار گواهی‌های SSL رایگان از Let's Encrypt را فراهم می‌کند.

نصب Certbot

Bash
# Installer Certbot et le plugin Nginx sudo apt install certbot python3-certbot-nginx -y

دریافت گواهی SSL

Bash
# Obtenir un certificat SSL pour votre domaine sudo certbot --nginx -d monsite.com -d www.monsite.com

مهم: monsite.com را با دامنه واقعی خود جایگزین کنید.

Certbot چند پرسش از شما می‌پرسد:

  1. ایمیل: نشانی ایمیل خود را وارد کنید (برای اعلان‌های تمدید)
  2. شرایط استفاده: با A (Agree) بپذیرید
  3. اشتراک‌گذاری ایمیل: بسته به ترجیح خود Y (Yes) یا N (No) را انتخاب کنید
  4. تغییر مسیر HTTP به HTTPS: گزینه 2 را انتخاب کنید (تغییر مسیر خودکار پیشنهاد می‌شود)

بررسی گواهی

Bash
# Vérifier que le certificat a été créé sudo certbot certificates

باید گواهی خود را به‌همراه تاریخ‌های انقضا در فهرست ببینید.

آزمایش سایت HTTPS شما

مرورگر خود را باز کنید و به https://votre-domaine.com بروید.

باید این موارد را ببینید:

  • یک قفل سبز 🔒 در نوار نشانی
  • سایت شما به‌صورت HTTPS (امن) بارگذاری شده است

تبریک! سایت شما اکنون با SSL امن شده است!

🔄 مرحله 4: تمدید خودکار گواهی

گواهی‌های Let's Encrypt پس از 90 روز منقضی می‌شوند. Certbot می‌تواند آن‌ها را به‌طور خودکار تمدید کند.

آزمایش تمدید خودکار

Bash
# Tester le renouvellement automatique sudo certbot renew --dry-run

اگر The dry run was successful را دیدید، تمدید خودکار درست کار می‌کند!

بررسی سرویس تمدید

Certbot به‌طور خودکار یک تایمر systemd برای تمدید گواهی‌ها می‌سازد. آن را بررسی کنید:

Bash
# Vérifier le timer sudo systemctl status certbot.timer # Si le timer n'est pas actif, l'activer sudo systemctl enable certbot.timer sudo systemctl start certbot.timer

گواهی پیش از انقضا به‌طور خودکار تمدید خواهد شد.

📁 ساختار فایل‌های شما

فایل‌های مهم در این مسیرها قرار دارند:

/var/www/monsite.com/          # Fichiers de votre site web
/etc/nginx/                    # Configuration Nginx
/etc/nginx/sites-available/    # Sites disponibles
/etc/nginx/sites-enabled/      # Sites actifs
/etc/letsencrypt/              # Certificats SSL

✅ بررسی نهایی

بررسی اینکه Nginx کار می‌کند

Bash
# Statut du service sudo systemctl status nginx # Tester la configuration sudo nginx -t

بررسی اینکه SSL کار می‌کند

Bash
# Voir les certificats sudo certbot certificates # Vérifier la date d'expiration sudo certbot certificates | grep "Expiry"

آزمایش سایت شما

  • به https://votre-domaine.com بروید
  • قفل سبز را در مرورگر بررسی کنید
  • روی قفل کلیک کنید تا جزئیات گواهی را ببینید

🛠️ فرمان‌های مفید

مدیریت Nginx

Bash
# Démarrer Nginx sudo systemctl start nginx # Arrêter Nginx sudo systemctl stop nginx # Redémarrer Nginx sudo systemctl restart nginx # Recharger Nginx (sans interruption) sudo systemctl reload nginx # Tester la configuration sudo nginx -t

مدیریت گواهی‌های SSL

Bash
# Renouveler manuellement tous les certificats sudo certbot renew # Renouveler un certificat spécifique sudo certbot renew --cert-name monsite.com # Voir tous les certificats sudo certbot certificates # Supprimer un certificat sudo certbot delete --cert-name monsite.com

مشاهده لاگ‌ها

Bash
# Logs Nginx sudo tail -f /var/log/nginx/error.log sudo tail -f /var/log/nginx/access.log # Logs Certbot sudo tail -f /var/log/letsencrypt/letsencrypt.log

🆘 عیب‌یابی

Nginx شروع نمی‌شود

Bash
# Vérifier les erreurs de configuration sudo nginx -t # Voir les logs d'erreur sudo journalctl -u nginx -n 50

گواهی SSL نصب نمی‌شود

مشکل: Certbot نمی‌تواند دامنه شما را تأیید کند.

راه‌حل‌ها:

  1. بررسی کنید دامنه شما واقعاً به IP سرور اشاره می‌کند:

    Bash
    dig monsite.com
  2. بررسی کنید پورت‌های 80 و 443 باز هستند:

    Bash
    sudo ufw status
  3. بررسی کنید Nginx روی پورت 80 گوش می‌دهد:

    Bash
    sudo netstat -tlnp | grep nginx
  4. مطمئن شوید پیکربندی Nginx شما از server_name درست استفاده می‌کند

سایت روی HTTPS بارگذاری نمی‌شود

  1. بررسی کنید گواهی وجود دارد:

    Bash
    sudo certbot certificates
  2. پیکربندی Nginx را بررسی کنید:

    Bash
    sudo nginx -t sudo cat /etc/nginx/sites-enabled/monsite.com
  3. مطمئن شوید فایروال پورت 443 را مجاز می‌کند:

    Bash
    sudo ufw allow 443/tcp

خطای 502 Bad Gateway

این خطا یعنی Nginx نمی‌تواند با برنامه شما ارتباط برقرار کند.

Bash
# Vérifier les logs Nginx sudo tail -f /var/log/nginx/error.log # Vérifier que votre application fonctionne sudo systemctl status votre-application

📚 منابع بیشتر

❓ پرسش‌های متداول

پرسش: آیا باید برای گواهی SSL هزینه بپردازم؟
پاسخ: خیر! Certbot از Let's Encrypt استفاده می‌کند که گواهی‌های SSL رایگان ارائه می‌دهد.

پرسش: آیا گواهی من منقضی می‌شود؟
پاسخ: بله، پس از 90 روز، اما Certbot آن را به‌طور خودکار تمدید می‌کند.

پرسش: آیا می‌توانم چند سایت روی یک سرور داشته باشم؟
پاسخ: بله! برای هر سایت یک فایل پیکربندی در /etc/nginx/sites-available/ بسازید.

پرسش: چگونه یک زیردامنه اضافه کنم؟
پاسخ: یک پیکربندی جدید Nginx بسازید و با sudo certbot --nginx -d sous-domaine.monsite.com گواهی دریافت کنید.

پرسش: اگر فراموش کردم گواهی خود را تمدید کنم چه کنم؟
پاسخ: Certbot آن را به‌طور خودکار تمدید می‌کند. می‌توانید sudo certbot renew را هم به‌صورت دستی اجرا کنید.


سایت شما اکنون با HTTPS امن شده است! 🚀🔒

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

ما از کوکی استفاده می‌کنیم

ما از کوکی‌های تحلیلی برای بهبود تجربه شما در سایت خود استفاده می‌کنیم. هیچ داده‌ای به اشخاص ثالث فروخته نمی‌شود. اطلاعات بیشتر در سیاست حفظ حریم خصوصی ما.