این بخش به شما کمک می‌کند تا ارتباط امن (HTTPS) را میان کاربران و CDN ستون برقرار کنید. شما می‌توانید از دو روش صدور خودکار یا بارگذاری دستی (کاستوم) استفاده کنید.


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

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

ویژگیگواهی خودکار (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): محتوای کلید خصوصی را وارد کنید.

    • محدودیت فنی: در حال حاضر فقط الگوریتم RSA پشتیبانی می‌شود. اگر کلید شما با عبارت BEGIN EC PRIVATE KEY شروع می‌شود، توسط پنل شناسایی نخواهد شد و باید از کلید RSA استفاده کنید.

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

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


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

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

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


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

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

خیر، اجباری نیست. شما می‌توانید ارتباط کاربر تا CDN را با SSL کاستوم ایمن کنید، اما ارتباط CDN تا سرور خودتان (Upstream) روی پروتکل HTTP یا حتی SSLهای Self-signed بماند. ستون در حال حاضر گواهی سمت سرور شما را 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 مطمئن شود، کاربردی است.