DevOps

گواهی SSL/TLS به زبان ساده: زنجیره، انقضا و خطاهای رایج.

نویسنده: تیم noc724۳ دقیقه مطالعهبه‌روزرسانی: ۲۶ مهر ۱۴۰۵

قفل نوار آدرس به یه فایل کوچیک وابسته است که در یه تاریخ مشخص منقضی می‌شه. وقتی این اتفاق بیفته (یا سرور اون رو اشتباه بفرسته)، مرورگرها سایت شما رو با یه صفحه‌ی کامل هشدار عوض می‌کنن که بیشتر بازدیدکننده‌ها ازش رد نمی‌شن. فهمیدن طرز کار گواهی‌ها این وضعیت‌های اضطراری رو به یه نگهداری معمولی تبدیل می‌کنه.

نکته‌های کلیدی

  • گواهی یه نام دامنه رو به یه کلید عمومی گره می‌زنه و یه مرجع صدور گواهی (CA) امضاش می‌کنه.
  • سرور باید کل زنجیره (گواهی خودش به‌علاوه‌ی میانی‌ها) رو بفرسته، نه فقط گواهی خودش رو.
  • گواهی‌ها منقضی می‌شن (امروز معمولاً بعد از ۹۰ روز تا حدود یه سال) و عمرشون مدام کوتاه‌تر می‌شه.
  • بیشتر خطاها انقضا، نخوندن نام یا جاافتادن گواهی میانی هستن.
  • تمدید رو خودکار کنید و انقضا رو مستقل مانیتور کنید، چون اتوماسیون بی‌صدا شکست می‌خوره.
قطعی پیش میاد. زود باخبر شید!

noc724 سایت، سرور و APIهای شما رو شبانه‌روز چک می‌کنه و همون لحظه‌ای که چیزی خراب شد با پیامک، تلگرام یا بله خبرتون می‌کنه.

ثبت‌نام رایگان

یه گواهی چی داره؟

  • Subject / SANها؛ نام‌های دامنه‌ای که برای اون‌ها معتبره، مثل example.com و www.example.com، یا یه wildcard مثل *.example.com.
  • کلید عمومی؛ که در دست‌دادن TLS استفاده می‌شه.
  • بازه‌ی اعتبار؛ تاریخ «نه قبل از» و «نه بعد از».
  • صادرکننده؛ CAی که امضاش کرده.
  • امضا؛ اثبات اینکه صادرکننده همه‌ی موارد بالا رو تضمین می‌کنه.

زنجیره‌ی اعتماد

مرورگرها به تعداد کمی گواهی ریشه اعتماد دارن. ریشه‌ها به‌ندرت مستقیم گواهی سایت امضا می‌کنن؛ گواهی‌های میانی رو امضا می‌کنن که اون‌ها گواهی شما رو امضا می‌کنن:

Root CA (in the browser's trust store)
  └── Intermediate CA (sent by your server)
        └── www.example.com (your certificate)

سرور شما باید گواهی خودش و گواهی‌های میانی رو بفرسته. بعضی مرورگرها گواهی میانی جاافتاده رو خودشون دانلود می‌کنن، برای همین سایت روی لپ‌تاپ شما سالم به نظر می‌رسه در حالی که گوشی‌ها، کلاینت‌های API و ابزارهای مانیتورینگ شکست می‌خورن. همیشه فایل «full chain» رو تنظیم کنید.

بررسی یه گواهی

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

-servername مهمه: سرورهایی که چند سایت رو میزبانی می‌کنن، گواهی رو بر اساس نام درخواستی (SNI) انتخاب می‌کنن.

خطاهای رایج

خطاعلت معمولراه حل
گواهی منقضی شدهتمدید اجرا یا دیپلوی نشدهتمدید، ریلود وب‌سرور، اصلاح اتوماسیون
نخوندن نامگواهی این نام میزبان رو پوشش نمی‌دهاضافه کردن نام به SANها یا استفاده از گواهی درست
صادرکننده‌ی ناشناس / زنجیره‌ی ناقصگواهی میانی فرستاده نشدهارائه‌ی فایل full chain
خودامضاگواهی تست در محیط تولیداستفاده از گواهی یه CA عمومی
هنوز معتبر نیستساعت سرور اشتباهه یا گواهی تازه صادر شدهاصلاح NTP در کلاینت یا سرور
پروتکل ضعیففقط TLS 1.0/1.1فعال کردن TLS 1.2 و 1.3

چرا انقضا هنوز باعث قطعی می‌شه؟

گواهی‌های رایگان و خودکار تمدید رو آسون کردن؛ و نامرئی. راه‌های رایجی که هنوز شکست می‌خوره:

  • کار تمدید اجرا می‌شه ولی وب‌سرور هیچ‌وقت ریلود نمی‌شه و هنوز گواهی قدیمی رو ارائه می‌ده.
  • تغییرات DNS یا فایروال، اعتبارسنجی CA (چالش HTTP یا DNS) رو خراب می‌کنه.
  • گواهی روی یکی از سرورهای پشت لودبالانسر تمدید شده ولی روی بقیه نه.
  • گواهی یه میزبان کم‌بازدید (ایمیل، API، پنل مدیریت) فراموش شده.

مانیتورینگ گواهی‌ها

یه چک بیرونی دقیقاً همون چیزی رو می‌بینه که کلاینت‌ها می‌بینن؛ روی هر میزبان و پورت:

  1. هر نام میزبانی که TLS ارائه می‌ده رو مانیتور کنید؛ از جمله ایمیل (۴۶۵/۹۹۳)، APIها و پنل‌های مدیریت.
  2. ۲۱ تا ۳۰ روز قبل از انقضا هشدار بگیرید و نزدیک تاریخ دوباره.
  3. زنجیره و نام میزبان رو چک کنید، نه فقط تاریخ رو.
  4. اون رو با مانیتورینگ انقضای دامنه همراه کنید؛ دامنه‌ی منقضی‌شده سایت گواهی رو هم با خودش می‌بره.

مانیتورینگ SSL در noc724 انقضا و اعتبار رو از بیرون چک می‌کنه و خیلی قبل از موعد با پیامک، تلگرام یا بله خبرتون می‌کنه.

پرسش‌های پرتکرار

  • SSL اسم پروتکل قدیمیه؛ همه‌ی نسخه‌های امن امروزی TLS هستن. «گواهی SSL» هنوز اسم رایج گواهی TLS است.

  • گواهی‌های عمومی حالا حداکثر حدود ۱۳ ماه اعتبار دارن و خیلی‌هاشون برای ۹۰ روز صادر می‌شن. صنعت توافق کرده سقف عمر گواهی‌ها رو مدام کوتاه‌تر کنه، که اتوماسیون رو ضروری می‌کنه.

  • معمولاً به خاطر گواهی میانی جاافتاده. مرورگرها می‌تونن این خلأ رو پر کنن؛ بیشتر کلاینت‌های دیگه نه. کل زنجیره رو ارائه بدید.

اشتراک‌گذاری مقاله:ایکستلگراملینکدینفیسبوکردیت
noc724

نویسنده

تیم noc724

تیم فنی مانیتورینگ آپتایم

ما noc724 رو می‌سازیم و اداره می‌کنیم؛ سرویس مانیتورینگ آپتایمی که سایت، سرور و API رو از چند شهر ایران چک می‌کنه. این راهنماها از مشکل‌هایی میان که خودمون و کاربرهامون موقع آنلاین نگه داشتن سرویس‌ها باهاشون روبه‌رو می‌شیم.

تماس با تیم

تخصص:DevOps

سؤالی دارید؟تماس با پشتیبانی
پیشنهادی دارید؟بفرستید

تازه‌ترین مقاله‌ها