دواپس و لینوکس

SSL با DuckDNS و Let's Encrypt

نویسنده: Hadi ZareZadeh۱۹ اسفند ۱۴۰۴۲۲۴۱ بازدید
SSL با DuckDNS و Let's Encrypt

هر پروژه‌ای به یک دامنه خریداری‌شده نیاز ندارد. برای هوم‌لب‌ها، پروژه‌های شخصی و آزمایش‌های VPS کوچک، DuckDNS به‌علاوه Let's Encrypt به شما HTTPS رایگان با تمدید خودکار می‌دهد. من این پشته را مرتب برای پروژه‌های جانبی و محیط‌های staging استفاده می‌کنم.

DuckDNS چیست؟

DuckDNS یک سرویس DNS پویای رایگان است. یک زیردامنه مثل myapp.duckdns.org می‌گیرید که به IP سرورتان اشاره می‌کند — و اگر IP شما تغییر کند (رایج در اتصال‌های خانگی) خودکار به‌روز می‌شود.

راه‌اندازی DuckDNS

  1. در duckdns.org یک حساب بسازید.
  2. یک زیردامنه اضافه و توکنتان را یادداشت کنید.
  3. اسکریپت به‌روزرسانی را روی سرورتان نصب کنید:
mkdir ~/duckdns
echo 'echo url="https://www.duckdns.org/update?domains=myapp&token=YOUR-TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -' > ~/duckdns/duck.sh
chmod 700 ~/duckdns/duck.sh

# cron هر ۵ دقیقه
*/5 * * * * ~/duckdns/duck.sh

گرفتن یک گواهی Let's Encrypt

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d myapp.duckdns.org

Certbot مالکیت دامنه را اعتبارسنجی می‌کند، گواهی را نصب و Nginx را برای HTTPS پیکربندی می‌کند. تمدید از طریق تایمر systemd خودکار است.

گواهی‌های Let's Encrypt هر ۹۰ روز منقضی می‌شوند. تمدید خودکار Certbot این را مدیریت می‌کند — اما با یک اجرای آزمایشی تأیید کنید که کار می‌کند.
sudo certbot renew --dry-run

اشتباهات رایج

  • پورت ۸۰ باز نیست. اعتبارسنجی HTTP لِتس‌انکریپت نیازمند دسترسی به پورت ۸۰ از اینترنت است.
  • به‌روز نشدن DuckDNS. اگر IP شما تغییر کند و DuckDNS دنبالش نکند، تمدید گواهی شکست می‌خورد.
  • استفاده از DuckDNS برای سایت‌های تجاری تولیدی. برای پروژه‌های شخصی خوب است؛ برای هر چیز روبه‌روی مشتری یک دامنه واقعی بگیرید.

بهترین شیوه‌ها

  • حتی با تمدید خودکار، انقضای گواهی را مانیتور کنید — هشدارها شکست‌ها را زود می‌گیرند.
  • کل ترافیک HTTP را در Nginx به HTTPS هدایت کنید.
  • توکن DuckDNS خود را محرمانه نگه دارید؛ مثل یک رمز عبور با آن رفتار کنید.

جمع‌بندی

DuckDNS و Let's Encrypt با هم به شما روی هر جعبه‌ای با IP عمومی HTTPS رایگان می‌دهند — عالی برای هوم‌لب‌ها و آزمایش‌ها. DuckDNS را راه‌اندازی کنید، Certbot را اجرا، تمدید خودکار را تأیید کنید و تمام. HTTPS اختیاری نیست، حتی برای پروژه‌های جانبی.