این بخش به شما کمک می‌کند تا ارتباط امن (HTTPS) را در CDN ستون پیکربندی کنید.

TLS در CDN ستون در دو بخش جدا اعمال می‌شود:

بخشمسیرچه چیزی را پوشش می‌دهد
Edge TLSکاربر ↔ CDNگواهی‌ای که مرورگر کاربر می‌بیند
Origin TLSCDN ↔ سرور اصلی (Upstream)گواهی‌ای که روی سرور Origin شما نصب شده است

بخش‌های ۱ تا ۴ این سند فقط Edge TLS را توضیح می‌دهند. برای Origin TLS به بخش ۵ مراجعه کنید.

برای Edge TLS می‌توانید از دو روش صدور خودکار یا بارگذاری دستی (کاستوم) استفاده کنید.


۱. انتخاب روش مناسب (تطبیق‌پذیری و پایداری)

پیش از تنظیم، با توجه به نیاز خود یکی از دو حالت زیر را انتخاب کنید:

ویژگیگواهی خودکار (Free Let’s Encrypt)گواهی دستی (Custom SSL)
هزینهرایگاننیاز به خرید لایسنس دارد
سازگاری با اندرویدفقط اندروید +7.1.1پشتیبانی از نسخه‌های قدیمی (اندروید ۵ و ۶)
پایداری در اختلالاتممکن است در زمان قطع اینترنت بین‌الملل تمدید نشودبسیار پایدار (High Availability)
مدیریتتمام خودکار توسط ستوننیاز به تمدید دستی توسط کاربر

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

اگر بخشی از کاربران شما از اندروید نسخه ۶.۰.۱ و پایین‌تر استفاده می‌کنند، گواهی‌های رایگان و خودکار ممکن است با خطای SSL مواجه شوند. در این حالت حتماً باید گواهی SSL معتبر خریداری کرده و به صورت دستی (روش دوم) وارد کنید.


۲. روش اول: صدور خودکار (Automatic)

در این حالت، CDN ستون مسئولیت دریافت و تمدید خودکار گواهی را بر عهده می‌گیرد.

  • حداقل نسخه TLS: برای حفظ سازگاری با اکثر دستگاه‌ها (از جمله اندروید +5.0)، این گزینه را روی TLS 1.2 تنظیم کنید.
  • حالت وایلدکارد (Wildcard):
    • خاموش: از چالش HTTP01 استفاده می‌شود. سایت شما باید حتماً روی CDN بالا باشد (Live) تا تاییدیه صادر شود. (احتمال اختلال کوتاه در شروع اولیه وجود دارد).
    • روشن: از چالش DNS01 استفاده می‌شود. این روش برای دامنه‌هایی که هنوز به CDN منتقل نشده‌اند عالی است. نکته: در این حالت حتماً باید از DNS ستون استفاده کنید.

۳. روش دوم: تنظیم دستی گواهی (Manual/Custom)

اگر گواهی تهیه کرده‌اید (فایل‌های .pem یا .crt و .key)، طبق مراحل زیر عمل کنید:

گام اول: افزودن Secret

ابتدا به بخش Secrets بروید و «افزودن Secret جدید» را بزنید.

  1. نام: یک اسم دلخواه (مثلاً My-Global-SSL).

  2. CRT (Full-chain): در این قسمت باید محتوای فایل گواهی خود را وارد کنید.

    • دقت کنید: گواهی باید به صورت Full-chain باشد. یعنی ابتدا متنِ کد Certificate و بلافاصله در ادامه متنِ کد Bundle یا Intermediate را قرار دهید.
  3. کلید (Private Key): محتوای کلید خصوصی را وارد کنید.

گام دوم: فعال‌سازی در CDN

پس از ذخیره Secret، به تنظیمات TLS برگردید، گزینه «فعال کردن Secret» را روشن کرده و نام سکرتی که ساختید را از لیست انتخاب کنید.


۴. امنیت و ریدایرکت (HSTS)

  • اجباری بودن TLS: با فعال کردن این گزینه، تمام درخواست‌های ناامن (HTTP) به صورت خودکار به HTTPS ریدایرکت می‌شوند.
  • HSTS: هدر امنیت انتقال برای مرورگر ارسال می‌شود (با اعتبار یک ساله) که باعث می‌شود مرورگر در مراجعات بعدی مستقیماً از پروتکل امن استفاده کند.

۵. TLS بین CDN و سرور اصلی (Origin)

این بخش درباره گواهی روی سرور مبدا (Origin / Upstream) است — نه گواهی Edge که در بخش‌های ۲ تا ۴ توضیح داده شد.

آیا CDN ستون گواهی Origin صادر می‌کند؟

خیر. CDN ستون در حال حاضر قابلیتی مشابه Cloudflare Origin Certificate ندارد؛ یعنی گواهی اختصاصی که فقط سرورهای لبه CDN آن را بپذیرند، از طریق پنل یا API صادر نمی‌شود.

آیا برای Origin حتماً باید TLS فعال باشد؟

خیر، اجباری نیست. می‌توانید:

  • Edge TLS را فعال کنید (HTTPS برای کاربران) و ارتباط CDN تا Origin را روی HTTP نگه دارید.
  • یا پروتکل آپ‌استریم را روی HTTPS بگذارید تا لبه CDN تا Origin هم رمزنگاری شود.

گواهی Self-signed روی Origin

اگر پروتکل آپ‌استریم را HTTPS انتخاب کنید:

  • CDN ستون اعتبارسنجی (Verify) گواهی Origin را انجام نمی‌دهد.
  • گواهی Self-signed روی سرور Origin پذیرفته می‌شود و نیازی به خرید گواهی عمومی برای Origin ندارید.
  • این رفتار قابل تنظیم per-CDN نیست؛ در حال حاضر همیشه بدون Verify به Origin متصل می‌شود.

چگونه HTTPS تا Origin را فعال کنم؟

  1. در تنظیمات سرورهای آپ‌استریم، فیلد پروتکل (Protocol) را روی HTTPS بگذارید.
  2. روی سرور Origin یک گواهی TLS نصب کنید (Self-signed کافی است).
  3. پورت سرور را مطابق پیکربندی TLS Origin تنظیم کنید (معمولاً 443).
  4. اگر سرور Origin چند سایت را روی یک IP میزبانی می‌کند (Virtual Hosting)، در صورت نیاز هدر Host آپ‌استریم را تنظیم کنید.

برای جزئیات پیکربندی آپ‌استریم به راهنمای سرورهای آپ‌استریم مراجعه کنید.

ملاحظات امنیتی

  • با HTTPS روی آپ‌استریم، ترافیک بین لبه CDN و Origin رمزنگاری می‌شود.
  • چون Verify انجام نمی‌شود، هویت سرور Origin از دید CDN تضمین نمی‌شود.
  • اگر نیاز به اطمینان از هویت Origin دارید، باید از روش‌های دیگر (شبکه خصوصی، فایروال، IP ثابت و …) استفاده کنید؛ CDN ستون در حال حاضر گزینه‌ای برای Full (strict) ارائه نمی‌دهد.

۶. سوالات متداول کاربران (FAQ)

آیا CDN ستون مثل Cloudflare می‌تواند برای Origin گواهی بسازد؟

خیر. گواهی Origin اختصاصی از CDN ستون صادر نمی‌شود. اگر می‌خواهید لبه CDN تا Origin رمزنگاری شود، کافی است پروتکل آپ‌استریم را HTTPS کنید و روی Origin یک گواهی (حتی Self-signed) نصب کنید.

آیا پذیرش گواهی Self-signed روی Origin قابل تنظیم است؟

خیر. در حال حاضر CDN ستون همیشه بدون Verify به Origin متصل می‌شود و این رفتار در پنل یا API قابل تغییر per-CDN نیست.

آیا ارتباط بین CDN و سرور اصلی (Upstream) هم باید SSL داشته باشد؟

خیر، اجباری نیست. می‌توانید Edge TLS را برای کاربران فعال کنید و Origin را روی HTTP نگه دارید. اگر Origin را HTTPS کنید، Self-signed هم کافی است چون CDN گواهی Origin را Verify نمی‌کند.

چرا کاربر اندروید ۶ من خطای SSL می‌گیرد؟

گواهی‌های رایگان در نسخه‌های قدیمی اندروید قابل شناسایی نیستند. راه حل خرید یک SSL تجاری و بارگذاری آن طبق «روش دوم» در این سند است.

بهترین نسخه TLS برای بیشترین سازگاری چیست؟

برای اینکه اپلیکیشن شما روی اندروید ۵ به بالا بدون مشکل کار کند، Minimum TLS Version را روی 1.2 قرار دهید.

توجه

حتما عبارت را به صورت Fullchain و با فرمت درست وارد کنید. منظور از full chain کد crt و بعد از آن bundle به‌صورت پشت سر هم، می‌باشد.

نکات مهم

لازمه‌ی گرفتن سرتیفیکیت Wildcard این است که DNS دامنه‌ای که CDN را بر روی آن تعریف کرده‌اید نیز در همان فضای کاری تعریف شده باشد. گواهی wildcard فقط تا یک لول معتبر است.

  • CDN هم اکنون تا ۱۰ لول درخواست hostname را تطبیق می‌دهد. یعنی اگر یک CDN برای example.com ساخته شده باشد و درخواستی برای x.y.z.example.com بیاید، با نزدیک‌ترین CDN پاسخ داده می‌شود.
  • از آن‌جایی که گواهی wildcard با استفاده از DNS است، این مورد برای مواردی که کاربر می‌خواهد قبل از انتقال دامنه‌اش به CDN از اخذ گواهی TLS مطمئن شود، کاربردی است.

باتوجه به اینکه در فرآیند صدور گواهی از زیردامنه‌هایی با پیشوند _acme-challenge استفاده می‌شود، نباید برای زیردامنه‌های مذکور رکورد CNAME تنظیم شده باشد؛ در غیر این صورت، فرآیند صدور یا تمدید خودکار گواهی با اختلال مواجه خواهد شد.