آموزش نصب SSL رایگان Let’s Encrypt روی Nginx در Ubuntu

آموزش نصب SSL رایگان Let’s Encrypt روی Nginx در Ubuntuر

آنچه در مقاله می‌خوانید

اگر از Nginx روی سرور لینوکسی استفاده می‌کنید، فعال‌سازی HTTPS یکی از مهم‌ترین اقداماتی است که باید برای امنیت وب‌سایت انجام دهید. استفاده از گواهی SSL باعث رمزنگاری ارتباط بین کاربر و سرور می‌شود و از سرقت اطلاعات، حملات Man-in-the-Middle و بسیاری از مشکلات امنیتی جلوگیری می‌کند.

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

Let’s Encrypt چیست؟

گواهینامه Let’s Encrypt یک مرجع صدور گواهی SSL رایگان است که امکان فعال‌سازی HTTPS را بدون پرداخت هزینه فراهم می‌کند.

این سرویس با استفاده از پروتکل ACME مالکیت دامنه را بررسی می‌کند و سپس گواهی SSL صادر می‌کند. ابزار Certbot نیز فرایند دریافت، نصب و تمدید گواهی را خودکار می‌کند.

برای نصب بهتر است ابتدا Nginx را روی سرور لینوکسی نصب و تنظیم کنید. همچنین استفاده از یک سرور مجازی پایدار یا سرور اختصاصی برای اجرای وب‌سایت‌های HTTPS توصیه می‌شود.

پیش‌نیازهای نصب SSL روی Nginx

قبل از شروع آموزش، موارد زیر باید آماده باشند:

همچنین باید رکوردهای DNS دامنه به IP سرور اشاره کنند:

  • example.com
  • www.example.com

اگر هنوز DNS دامنه را تنظیم نکرده‌اید، ابتدا رکوردهای A دامنه را به IP سرور متصل کنید.

مرحله اول نصب Certbot

ابزار Certbot مسئول دریافت و مدیریت گواهی‌های SSL است.

ابتدا snap را بروزرسانی کنید:

sudo snap install core
sudo snap refresh core

اگر نسخه قدیمی Certbot روی سرور نصب است، آن را حذف کنید:

sudo apt remove certbot

سپس Certbot را نصب کنید:

sudo snap install --classic certbot

برای اجرای راحت‌تر دستور certbot، لینک زیر را ایجاد کنید:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

اگر از snap استفاده نمی‌کنید، می‌توانید Certbot را از مخازن Ubuntu نصب کنید:

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

مرحله دوم بررسی تنظیمات Nginx

Certbot باید بتواند فایل تنظیمات دامنه را در Nginx پیدا کند. به همین دلیل باید مقدار server_name به‌درستی تنظیم شده باشد.

فایل تنظیمات سایت را باز کنید:

sudo nano /etc/nginx/sites-available/example.com

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

server_name example.com www.example.com;

بعد از اعمال تغییرات، تنظیمات Nginx را بررسی کنید:

sudo nginx -t

اگر خطایی وجود نداشت، Nginx را Reload کنید:

sudo systemctl reload nginx

مرحله سوم باز کردن پورت HTTPS در فایروال

اگر فایروال UFW فعال است، باید اجازه دسترسی HTTPS را صادر کنید.

ابتدا وضعیت فعلی فایروال را بررسی کنید:

sudo ufw status

سپس پروفایل کامل Nginx را فعال کنید:

sudo ufw allow 'Nginx Full'

و دسترسی HTTP قدیمی را حذف کنید:

sudo ufw delete allow 'Nginx HTTP'

بعد از آن دوباره وضعیت فایروال را بررسی کنید:

sudo ufw status

مرحله چهارم دریافت SSL رایگان برای Nginx

حالا می‌توانید گواهی SSL را دریافت کنید.

دستور زیر را اجرا کنید:

sudo certbot --nginx -d example.com -d www.example.com

در طول فرایند نصب:

  • ایمیل خود را وارد می‌کنید
  • قوانین Let’s Encrypt را تایید می‌کنید
  • Certbot به‌صورت خودکار SSL را روی Nginx تنظیم می‌کند

پس از موفقیت، مسیر فایل‌های SSL نمایش داده می‌شود:

/etc/letsencrypt/live/your_domain/fullchain.pem
/etc/letsencrypt/live/your_domain/privkey.pem

در این مرحله HTTPS فعال می‌شود و تمام درخواست‌های HTTP به HTTPS ریدایرکت خواهند شد.

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

مرحله پنجم بررسی تمدید خودکار SSL

گواهی‌های Let’s Encrypt فقط 90 روز اعتبار دارند، اما Certbot به‌صورت خودکار آن‌ها را تمدید می‌کند.

برای بررسی وضعیت سرویس تمدید خودکار:

sudo systemctl status snap.certbot.renew.service

برای تست فرایند تمدید بدون اعمال تغییر واقعی:

sudo certbot renew --dry-run

اگر خطایی مشاهده نکردید، تمدید خودکار SSL به‌درستی فعال شده است.

همچنین می‌توانید بعد از تمدید، Nginx را به‌صورت خودکار Reload کنید:

sudo certbot renew --post-hook "systemctl reload nginx"

تنظیمات امنیتی پیشنهادی برای HTTPS

بعد از فعال‌سازی SSL بهتر است چند تنظیم امنیتی مهم را نیز روی Nginx اعمال کنید.

فعال‌سازی HSTS

برای مجبور کردن مرورگرها به استفاده از HTTPS:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

استفاده از TLS مدرن

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;

ریدایرکت HTTP به HTTPS

server {
<span "> listen 80;
 server_name example.com www.example.com;
 return 301 https://$host$request_uri;
}

بررسی وضعیت SSL سایت

بعد از نصب SSL بهتر است وضعیت امنیتی سایت را بررسی کنید.

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

  • SSL Labs Server Test
  • Mozilla SSL Configuration Generator

همچنین این دستورات برای بررسی عملکرد HTTPS مفید هستند:

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

مشکلات رایج هنگام نصب SSL روی Nginx

خطای ACME Challenge

اگر Let’s Encrypt نتواند دامنه را تایید کند، معمولا یکی از این مشکلات وجود دارد:

  • بسته بودن پورت 80
  • تنظیم نبودن DNS
  • اشتباه بودن server_name
  • وجود CDN یا فایروال محدودکننده

خطای DNS

بررسی کنید رکوردهای A و AAAA دامنه به IP صحیح سرور اشاره کنند.

مشکل Rate Limit

درخواست‌های ناموفق زیاد ممکن است باعث محدود شدن IP توسط Let’s Encrypt شود. بهتر است هنگام تست از گزینه dry-run استفاده کنید.

مزایای استفاده از SSL روی Nginx

فعال‌سازی HTTPS فقط برای امنیت نیست و روی سئو و اعتماد کاربران نیز تاثیر زیادی دارد.

مهم‌ترین مزایای SSL:

  • رمزنگاری اطلاعات کاربران
  • افزایش اعتماد بازدیدکنندگان
  • بهبود سئو سایت
  • جلوگیری از شنود اطلاعات
  • افزایش امنیت فرم‌های ورود و پرداخت
  • جلوگیری از هشدار Not Secure مرورگرها

جمع‌بندی

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

اگر از Nginx روی VPS لینوکس یا سرور اختصاصی استفاده می‌کنید، فعال‌سازی SSL یکی از مهم‌ترین اقداماتی است که باید بعد از راه‌اندازی سرور انجام دهید. استفاده از HTTPS علاوه بر افزایش امنیت، باعث بهبود اعتماد کاربران و عملکرد بهتر سایت در موتورهای جستجو نیز می‌شود.

امتیاز شما به این مطلب
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

19 + هجده =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
آموزش نصب SSL رایگان Let’s Encrypt روی Nginx در Ubuntuر
آموزش اس اس ال SSL

آموزش نصب SSL رایگان Let’s Encrypt روی Nginx در Ubuntu

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

خدمات مبین هاست