راهنمای نصب SSL رایگان Let’s Encrypt با DNS Challenge

  • دسته بندی ها: عمومی

در بسیاری از سناریوهای میزبانی وب، به ویژه زمانی که دسترسی مستقیم به پورت‌های 80 و 443 وجود ندارد یا وب‌سرور پشت محدودیت‌های شبکه قرار گرفته، استفاده از روش‌های معمول صدور گواهینامه SSL امکان‌پذیر نیست. در چنین شرایطی، بهترین و پایدارترین راهکار، استفاده از روش DNS Challenge برای دریافت گواهی SSL رایگان از Let’s Encrypt است. در این مطلب دو روش کاربردی برای دریافت گواهی SSL بررسی می‌شود. روش اول استفاده از ابزار Win-acme در محیط ویندوز است و روش دوم استفاده از Certbot در سیستم‌عامل لینوکس.

در هر دو روش، از مکانیسم DNS Challenge استفاده می‌شود، به این معنا که احراز مالکیت دامنه از طریق ایجاد یک رکورد TXT در DNS انجام می‌گیرد، بدون اینکه نیازی به باز بودن پورت‌های وب یا دسترسی مستقیم به وب‌سرور باشد.

چرا DNS Challenge بهترین روش در شرایط محدود است؟

روش‌های معمول صدور گواهی SSL معمولا از طریق HTTP Challenge انجام می‌شوند، در این روش، سرور باید از بیرون قابل دسترسی باشد تا بتواند درخواست‌های تایید را دریافت و پاسخ دهد. با این حال، در بسیاری از سناریوهای واقعی این شرایط فراهم نیست. برای مثال در برخی موارد به دلیل قطعی اینترنت بین‌الملل یا محدودیت‌های شبکه‌ای، ارتباط پایدار با سرویس‌های خارجی برقرار نمی‌شود.

در روش DNS Challenge، به جای بررسی وب‌سرور، یک رکورد TXT در DNS دامنه ایجاد می‌شود و سیستم صادرکننده SSL -در این مطلب Let’s Encrypt – از طریق DNS صحت مالکیت دامنه را بررسی می‌کند.
این روش هم امن‌تر است و هم در شرایط سخت شبکه قابل استفاده است.

در این روش کلاینت ویندوز یا لینوکس باید دسترسی اینترنت داشته باشد.

دریافت SSL رایگان با Win-acme در ویندوز

در این روش از ابزار win-acme استفاده می‌کنیم که یکی از محبوبترین کلاینت‌های ACME در محیط ویندوز است.

مرحله 1: اجرای ابزار Win-acme

پس از دانلود و اکستراکت فایل، برنامه wacs.exe را اجرا کنید.
پس از اجرا، محیط متنی برنامه باز می‌شود.
در این مرحله گزینه زیر را انتخاب کنید:

این گزینه برای تنظیمات پیشرفته و کنترل کامل فرآیند صدور SSL استفاده می‌شود.

مرحله 2: تعیین دامنه‌ها

در این مرحله باید دامنه‌هایی که قصد صدور SSL برای آن‌ها دارید مشخص شوند.
گزینه زیر را انتخاب کنید:

سپس دامنه‌ها را وارد کنید:

در این مرحله می‌توان چند دامنه را همزمان اضافه کرد.

مرحله 3: انتخاب نوع گواهینامه

در این بخش مشخص می‌کنید که آیا برای هر دامنه یک گواهی جدا ساخته شود یا یک گواهی مشترک.

گزینه پیشنهادی:

این گزینه باعث می‌شود یک گواهی واحد برای همه دامنه‌ها ساخته شود که مدیریت آن ساده‌تر است.

مرحله 4: انتخاب روش اعتبارسنجی (DNS Challenge)

این مهمترین بخش فرآیند است. در این مرحله باید روش احراز مالکیت دامنه را انتخاب کنید.
گزینه زیر را انتخاب کنید:

در این حالت، Win-acme یک رکورد TXT برای شما تولید می‌کند که باید در DNS دامنه ثبت شود.

مرحله 5: انتخاب نوع کلید امنیتی

در این مرحله نوع رمزنگاری گواهی انتخاب می‌شود. برای بیشترین سازگاری با کنترل پنل‌ها و وب‌سرورها، گزینه زیر توصیه می‌شود:

RSA در بیشتر کنترل پنل‌ها مانند دایرکت ادمین بدون مشکل پشتیبانی می‌شود.

مرحله 6: تعیین مسیر ذخیره فایل‌ها

در این مرحله مشخص می‌کنید فایل‌های خروجی کجا ذخیره شوند.
مثال:

سپس گزینه‌های زیر را انتخاب کنید:

  • بدون رمز عبور (None)
  • بدون مراحل اضافی (No additional store steps)

مرحله 7: وارد کردن ایمیل

برای اطلاع‌رسانی و مدیریت گواهی، یک ایمیل معتبر وارد کنید:

مرحله 8: دریافت رکورد TXT

در این مرحله، ابزار یک رکورد DNS به شما نمایش می‌دهد:

مرحله 9: ثبت رکورد در DNS

وارد پنل مدیریت DNS شوید و رکورد زیر را ایجاد کنید:

  • Type: TXT
  • Name: _acme-challenge
  • Value: XXXXXXXXXXXXX

اگر چند دامنه دارید، برای هر دامنه یک رکورد جدا ایجاد می‌شود.

پس از ثبت، معمولا بین 1 تا 10 دقیقه زمان نیاز است تا DNS در سطح اینترنت منتشر شود.

مرحله 10: تایید و صدور گواهی

پس از انتشار DNS، به Win-acme بازگردید و Enter بزنید.

در صورت موفقیت:

  • گواهی صادر می‌شود
  • فایل‌های SSL تولید می‌شوند

مرحله 11: نصب SSL در DirectAdmin

پس از تولید گواهی، وارد پنل DirectAdmin شوید:
مسیر:

سپس فایل‌ها را وارد کنید:

پس از ذخیره، SSL فعال خواهد شد.

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

دریافت SSL رایگان با Certbot در لینوکس

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

مرحله 1: نصب Certbot

ابتدا ابزار را نصب کنید:

مرحله 2: اجرای Certbot با DNS Challenge

برای صدور SSL با DNS Challenge دستور زیر استفاده می‌شود:

در این دستور:

  • manual– یعنی حالت دستی
  • preferred-challenges dns– یعنی استفاده از DNS
  • key-type rsa– برای سازگاری با کنترل پنل‌ها

مرحله 3: دریافت رکورد TXT

Certbot یک مقدار مشابه زیر نمایش می‌دهد:

این مقدار باید در DNS ثبت شود.

مرحله 4: ثبت رکورد در DNS

در پنل DNS:

  • Type: TXT
  • Name: _acme-challenge.www
  • Value: XXXXXXXXXXXXX

پس از ثبت، باید چند دقیقه صبر کنید تا DNS منتشر شود.

مرحله 5: تایید صدور گواهی

پس از اطمینان از انتشار DNS، به ترمینال بازگردید و Enter بزنید.

در صورت موفقیت:

  • گواهی صادر می‌شود
  • فایل‌های SSL در مسیر زیر قرار می‌گیرند:

مرحله 6: فایل‌های مهم SSL

چهار فایل در این مسیر وجود دارد:

  • fullchain.pem (گواهی کامل)
  • privkey.pem (کلید خصوصی)
  • chain.pem (زنجیره گواهی)
  • cert.pem (گواهی خام)

مرحله 7: نصب در DirectAdmin

پس از تولید گواهی، وارد پنل DirectAdmin شوید:
مسیر:

سپس فایل‌ها را وارد کنید:

پس از ذخیره، SSL فعال خواهد شد.

نکات مهم و خطاهای رایج در DNS Challenge

در هر دو روش ممکن است با خطاهای زیر مواجه شوید:

  •  NXDOMAIN
    یعنی رکورد DNS اصلا وجود ندارد یا اشتباه ثبت شده است.
  • Incorrect TXT record
    یعنی مقدار TXT با مقدار مورد انتظار متفاوت است.
  • Invalid Key
    یعنی کلید خصوصی با گواهی تطابق ندارد.
  • تاخیر در DNS
    گاهی DNS چند دقیقه تا چند ساعت تاخیر دارد و باعث خطای موقت می‌شود.

جمع‌بندی

روش DNS Challenge یکی از پایدارترین و امن‌ترین روش‌ها برای دریافت SSL در شرایط محدود شبکه است. چه در ویندوز با Win-acme و چه در لینوکس با Certbot، این روش امکان دریافت گواهی معتبر از Let’s Encrypt را بدون نیاز به دسترسی مستقیم به وب‌سرور فراهم می‌کند.
اگر هدف شما مدیریت حرفه‌ای سرورهاست، درک درست از DNS Challenge و نحوه کار آن، یکی از مهارت‌های کلیدی در مدیریت زیرساخت وب محسوب می‌شود.