خانه bread crumb arrow icon وبلاگ bread crumb arrow icon آموزش های پیشرفته bread crumb arrow icon نحوه پیکربندی HTTPS با Let’s Encrypt برای Nginx در اوبونتو و دبیان

چطور HTTPS را با Let’s Encrypt روی Nginx فعال کنیم؟

فعال‌ سازی HTTPS با SSL رایگان Let’s Encrypt روی Nginx
تیم محتوا
مدت زمان مطالعه : 2 دقیقه
۰ کامنت
۱۴۰۴/۰۵/۱۹

شید زمانی که داری به آدرس یه سایت نگاه می کنی، ببینی کنارش یه قفل سبز ظاهر شده اما این یعنی چی؟

اون قفل نشون دهنده  که اتصال بین مرورگر و سایت از طریق HTTPS رمزنگاری شده و امنه. اما واقعیت اینه که فعال‌ کردن HTTPS فقط نصب یه گواهی SSL ساده نیست؛ اگه درست انجام نشه، ممکنه آسیب‌ پذیری‌ هایی به وجود بیاد که حتی امنیت سایت رو تهدید کنه.

تو این مقاله، یاد می‌ گیری چطور با پیکربندی HTTPS با Let’s Encrypt، یکی از محبوب‌ ترین و رایگان‌ ترین سرویس‌ های صدور گواهی SSL، سایت خودت رو روی سرور Nginx در سیستم‌ عامل‌ های Ubuntu یا Debian کاملاً امن کنی. این رهنما رو جوری نوشتیم که در کنار اینکه برای تازه کارا مناسب باشه، بلکه مدیران سیستم توسعه دهنده های حرفه ای هم بتونن به صورت حرفه ای و کاملا کاربردی ازش استفاده کنن.

نحوه پیکربندی HTTPS با Let’s Encrypt برای Nginx در اوبونتو و دبیان

چرا HTTPS و SSL مهمن؟

🔹 اعتمادسازی برای کاربران

نشان دادن قفل سبز باعث میشه کاربران با اطمینان بیشتری سایتت رو استفاده کنن.

🔹 بهتر شدن رتبه سئو

گوگل رسماً اعلام کرده که HTTPS یکی از عوامل موثر در رتبه‌ بندی سایت‌ هاست.

🔹 محافظت در برابر حملات MITM

حملات مرد میانه رو (Man-In-The-Middle) که اطلاعات کاربران رو به سرقت میبرن، جلوگیری میکنه.

چرا HTTPS و SSL اینقدر اهمیت دارن؟

نکات فنی که باید بدونی

1-  پروتکل TLS همیشه در حال به‌ روزرسانیه و نسخه‌ های جدیدتر امنیت و سرعت بهتری فراهم می‌ کنن.

2- اگه میخوای مرورگرت همیشه به HTTPS سایتت وصل شن، HSTS رو فعال کن.

3- برای اینکه از امن بودن ارتباطات قبلیتون مطمئن بشید، حتی اگه کلید خصوصی لو بره، از Perfect Forward Secrecy استفاده کن.

4- اشتباه HTTPS میتونه باعث ایجاد آسیب‌ پذیری‌ هایی مثل حملات downgrade یا استفاده از الگوریتم‌ های رمزنگاری ضعیف بشه. پس فقط فعال کردن HTTPS کافی نیست، باید کانفیگ امنیتی رو هم بهینه کنی.

نکات فنی پیکربندی HTTPS

چرا Let’s Encrypt انتخاب اوله؟

  • کاملاً رایگان و بدون محدودیت در تعداد گواهی‌ ها
  • تمدید خودکار و راحت گواهی‌ ها با ابزار Certbot
  • پشتیبانی گسترده از مرورگرها و دستگاه‌ ها
  • نصب و راه‌ اندازی ساده حتی برای مبتدیان

مراحل پیکربندی HTTPS روی Nginx

پیش‌ نیازها

✔ سرور با اوبونتو یا دبیان

نصب Nginx

دامنه‌ای که به IP سرور اشاره دارد

✔ بلاک سرور (Server Block) مناسب در Nginx برای دامنه

مرحله اول: نصب Certbot و پلاگین Nginx

Certbot ابزاریه که Let’s Encrypt برای گرفتن گواهی SSL راحت و خودکار پیشنهاد می‌ کنه. اگه با Nginx کار میکنی، باید پلاگین Nginx رو هم نصب کنی:

sudo apt update
sudo apt install certbot python3-certbot-nginx

‼️ نکته امنیتی: مطمئن شو فقط از مخازن رسمی یا منابع معتبر نصب می‌ کنی.

مرحله دوم: بررسی پیکربندی بلاک سرور

توی مسیر /etc/nginx/sites-available/ فایل مربوط به دامنه‌ ات رو باز کن و مطمئن شو server_name به‌ درستی ست شده:

server_name example.com www.example.com;

سپس برای تست پیکربندی:

sudo nginx -t

و در صورت نبود خطا:

sudo systemctl reload nginx

❗️ نکته: اگه فایل بلاک سرور نداری یا شک داری، می‌ تونی از فایل پیش‌ فرض /etc/nginx/sites-enabled/default کمک بگیری.

مرحله سوم: باز کردن پورت‌

اگه UFW فعاله، دستور زیر رو وارد کن:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
sudo ufw status

 

مرحله چهارم: فعال‌ سازی HTTPS

وقتشه که گواهی رو بگیری. فقط کافیه دامنه‌ ات رو جایگزین کنی:

sudo certbot --nginx -d example.com -d www.example.com
  • ایمیلت رو وارد کن
  • قوانین Let’s Encrypt رو بپذیر
  • وقتی پرسید که می‌ خوای ترافیک HTTP به HTTPS ریدایرکت بشه، حتماً تایید کن

بعد از اتمام، Certbot خودش فایل‌ های کانفیگ رو آپدیت و سرور رو ری‌ لود میکنه.

مرحله پنجم: تست فعال بودن HTTPS

مرورگر رو باز کن و برو به:

https://example.com

اگه قفل سبز رو دیدی و مرورگر هشدار نداد، یعنی کار درست انجام شده.

مرحله ششم: بررسی تمدید خودکار گواهی SSL

گواهی‌ های Let’s Encrypt فقط ۹۰ روزه هستن، اما نگران نباش. Certbot به‌ صورت خودکار یه job توی cron می‌ ذاره که تمدید انجام بشه. برای تست دستی تمدید:

sudo certbot renew --dry-run

مشکلات رایج + راه‌ حل‌ ها

مشکلدلیلراه حل
گواهی نصب نمیشهبلاک سرور اشتباهه یا پورت 80 بسته استبررسی پیکربندی Nginx و فایروال
سایت بعد از نصب SSL لود نمیشهبه در ستی ریدایرکت نشده یا پروت 443 بسته استبررسی کانفیگ Nginx و دستورات ufw
ارور Too_ Many_Requestsزیاد تلاش کردی گواهی بگیریصبر کن یا توی sandbox تست کن

جمع بندی

اگه تا اینجا اومدی، تبریک می‌گم. الان سایتت به لطف پیکربندی HTTPS با Let’s Encrypt برای Nginx کاملاً امنه و HTTPS فعاله. نه‌ تنها امنیتت بالاتر رفته، بلکه سئوی سایتت هم بهتر شده.

اما کار رو فقط با نصب گواهی تموم‌ شده فرض نکن؛ بهتره همیشه سرور رو به‌ روز نگه داری، مخصوصاً ابزار Certbot و وب‌ سرور Nginx رو.

اگه سوالی داشتی یا خواستی به مرحله‌ های پیشرفته‌ تری مثل HSTS، TLS 1.3 یا بازطراحی تنظیمات امنیتی بپردازی، خوشحال میشیم راهنماییت کنیم!

سوالات متداول ایمن کردن Nginx با Let’s Encrypt

خیر، استفاده از Let’s Encrypt کاملاً رایگان است.

با باز کردن سایت با https:// و مشاهده قفل سبز در مرورگر میتونی مطمئن شی.

۰

دیدگاه و پرسش