سایتی را به یاد می‌آورم که کارفرمایش مطمئن بود همه‌چیز مرتب است چون مرورگر قفل سبز نشان می‌داد؛ اما مشتریانش از برخی مناطق نمی‌توانستند سایت را باز کنند. بررسی که کردم، گواهی SSL (Secure Sockets Layer) تا دو روز دیگر منقضی می‌شد و مرورگرها بسته به نسخه، رفتار متفاوتی داشتند. آن روز برای من یادآوری شد که بررسی اعتبار SSL یک اقدام یک‌باره نیست؛ یک عادت دوره‌ای است که جلوی فاجعه‌های خاموش را می‌گیرد. این نوشته، همان روشی است که در پروژه‌های واقعی برای بررسی و پایش اعتبار SSL به کار می‌برم.

اعتبار SSL دقیقاً یعنی چه؟

وقتی از اعتبار SSL صحبت می‌کنیم، منظور فقط «فعال بودن قفل سبز مرورگر» نیست. اعتبار یک گواهی SSL (Secure Sockets Layer) به معنای ترکیبی از چهار شرط است:

  • بازه زمانی معتبر: گواهی هنوز منقضی نشده و زودتر از موعد شروعش نرسیده است.
  • صادرکننده معتبر: گواهی توسط یک مرجع صدور گواهی (CA – Certificate Authority) معتبر امضا شده است.
  • دامنه هم‌خوان: نام دامنه‌ای که در گواهی ثبت شده، با دامنه‌ای که مرورگر درخواست می‌کند یکی است (شامل ساب‌دامین‌ها).
  • زنجیره اعتماد کامل: زنجیره گواهی از گواهی سایت تا گواهی ریشه درست و بدون شکستگی است.

هر خطا در یکی از این چهار شرط، در مرورگر به شکل هشدار قرمز یا خطای امنیتی ظاهر می‌شود. اگر مفهوم کلی SSL و HTTPS برایتان تازه است، ابتدا SSL چیست و چرا سایت به آن نیاز دارد و HTTPS چیست و چه تفاوتی با HTTP دارد را بخوانید و بعد به این مقاله برگردید.

اعتبار SSL مثل معاینه پزشکی است: نبود علائم، نشانه نبود بیماری نیست. باید معیارها را جدا اندازه گرفت، نه فقط به ظاهر مرورگر اکتفا کرد.

چرا بررسی دوره‌ای اعتبار SSL حیاتی است؟

در پروژه‌های واقعی، بررسی دوره‌ای SSL به سه دلیل از حالت «کار خوبی که می‌شود کرد» به «کاری که باید کرد» تبدیل می‌شود:

  1. انقضای خاموش: گواهی‌ها در بازه‌های مختلف (یک سال، ۹۰ روز، حتی چند روز) صادر می‌شوند. اگر سیستم هشدار نداشته باشید، انقضا در ساعات نامناسب اتفاق می‌افتد و کاربران، اولین خبررسان شما می‌شوند.
  2. تأثیر مستقیم بر سئو: سایت‌های با گواهی نامعتبر در مرورگر به‌عنوان «نشکن‌ناپذیر» علامت‌گذاری می‌شوند و همین باعث افت نرخ کلیک و ریزش ترافیک ارگانیک می‌شود. جزئیات این اثر را در تأثیر HTTPS بر سئو بررسی کرده‌ام.
  3. آسیب به اعتماد: کاربر عادی تفاوت میان «گواهی منقضی» و «حمله MITM» را نمی‌داند؛ هر دو را به یک چشم می‌بیند و سایت را ترک می‌کند. به‌خصوص در فروشگاه‌ها، این ترک برابر با از دست دادن فروش است.

در تجربه‌ام، سایت‌هایی که به‌طور خودکار پایش SSL ندارند، تقریباً همیشه در یک نقطه دچار این مشکل می‌شوند. تنها تفاوت این است که کدام گروه زودتر آن را کشف می‌کند: تیم فنی یا مشتری عصبانی.

روش‌های دستی بررسی اعتبار

سه روش دستی که در پروژه‌ها استفاده می‌کنم و می‌توانید همین الان روی سایت خودتان اجرا کنید:

  1. مشاهده جزئیات گواهی در مرورگر: روی قفل کنار نشانی بزنید و «Certificate» یا «گواهی» را باز کنید. تاریخ شروع و پایان، صادرکننده و دامنه را بررسی کنید. این روش سریع است، اما عمیق نیست.
  2. بررسی چند ساب‌دامین: گواهی‌های Wildcard فقط یک سطح ساب‌دامین را پوشش می‌دهند، و گواهی معمولی ممکن است فقط دامنه اصلی را پوشش داده باشد. حتماً همه ساب‌دامین‌ها را جداگانه بررسی کنید.
  3. تست با مرورگر بی‌نام (Incognito): گاهی کش مرورگر شما، گواهی قدیمی را نگه می‌دارد و خطا را پنهان می‌کند. تست در حالت بی‌نام یا مرورگر دیگر، تصویر واقعی‌تری می‌دهد.

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

ابزارهای آنلاین و خط فرمان

برای بررسی دقیق‌تر اعتبار SSL، از ترکیب ابزارهای خط فرمان و سرویس‌های آنلاین استفاده می‌کنم. هر کدام بخشی از تصویر را نشان می‌دهد:

ابزارنوعکاربرد اصلی
OpenSSL (خط فرمان)CLIبررسی زنجیره، تاریخ انقضا و متن گواهی
SSL Labs Testآنلایننمره جامع پیکربندی TLS و زنجیره
سرویس‌های بررسی Certificate Transparencyآنلاینکشف گواهی‌های صادرشده برای دامنه شما
ابزارهای بررسی هدر و TLS در مرورگرداخلیمشاهده سریع جزئیات گواهی و پروتکل فعال

نمونه‌ای از بررسی سریع با OpenSSL در خط فرمان:

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

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

بررسی زنجیره گواهی و ریشه اعتماد

یکی از پنهان‌ترین مشکلات SSL، شکستگی در زنجیره گواهی (certificate chain) است. مرورگرها گاهی با کش داخلی خود، این شکستگی را پنهان می‌کنند؛ اما کاربران در دستگاه‌های دیگر یا کتابخانه‌های برنامه‌نویسی مثل curl و Python، خطا می‌گیرند. سه نکته که در بررسی زنجیره باید به آن دقت کنید:

  • وجود گواهی میانی (Intermediate): اکثر گواهی‌ها نیاز به گواهی میانی دارند؛ اگر سرور این فایل را نفرستد، زنجیره ناقص می‌شود.
  • هم‌خوانی گواهی ریشه (Root): گواهی ریشه باید در فهرست مراجع معتبر سیستم‌عامل کاربر وجود داشته باشد؛ در غیر این صورت، خطای «untrusted certificate» رخ می‌دهد.
  • هم‌خوانی SNI: اگر سروری چند دامنه روی یک IP دارد، SNI (Server Name Indication) باید درست تنظیم شده باشد تا گواهی مربوط به هر دامنه تحویل داده شود.

خطای زنجیره، به‌خصوص در پروژه‌هایی که سرور مهاجرت کرده یا گواهی تازه نصب شده، بسیار شایع است. اگر بعد از نصب SSL این خطا را می‌بینید، احتمالاً فایل intermediate را در پیکربندی سرور جای درست نگذاشته‌اید.

خطای زنجیره، شبیه پرونده‌ای است که یک صفحه از آن گم شده باشد؛ مرورگر شما شاید متوجه نشود، اما کاربر در دستگاه دیگر، به‌محض باز کردن پرونده، متوقف می‌شود.

بررسی نسخه و پیکربندی TLS

اعتبار SSL، فقط به گواهی مربوط نیست؛ نسخه پروتکل TLS (Transport Layer Security) که سایت استفاده می‌کند هم بخشی از اعتبار است. سه نکته که در بررسی پیکربندی در نظر می‌گیرم:

  • غیرفعال بودن نسخه‌های قدیمی: TLS 1.0 و TLS 1.1 امروز منسوخ محسوب می‌شوند و در بسیاری از تست‌ها امتیاز منفی می‌گیرند. حداقل باید TLS 1.2 و بهتر از آن TLS 1.3 فعال باشد.
  • تنظیم صحیح Cipher Suites: ترکیب الگوریتم‌های رمزنگاری که سرور پشتیبانی می‌کند باید مدرن و امن باشد؛ ترکیب‌های ضعیف مثل RC4 امروز منسوخ‌اند.
  • HSTS (HTTP Strict Transport Security): هدر HSTS به مرورگر می‌گوید فقط با HTTPS به سایت وصل شود. این هدر در برابر حمله MITM نقش مهمی دارد. جزئیات این هدر و بقیه هدرهای امنیتی در هدرهای امنیتی HTTP آمده است.

اگر در بررسی SSL Labs نمره‌ای کمتر از A گرفتید، احتمالاً بخشی از مسئله مربوط به نسخه TLS یا ترکیب Cipher Suites است. اصلاح این بخش‌ها معمولاً از تنظیمات سرور و پنل هاست انجام می‌شود.

پایش خودکار و هشدار پیش از انقضا

بررسی دستی، به‌تنهایی کافی نیست. در پروژه‌های واقعی، پایش خودکار سه لایه دارد:

  1. هشدار پیش از انقضا از طرف CA: اکثر مراجع صدور گواهی، چند هفته قبل از انقضا ایمیل هشدار می‌فرستند. اما ایمیل‌ها در اسپم گم می‌شوند و نباید تنها مکانیزم هشدار باشند.
  2. ابزار پایش مستقل: سرویس‌های پایش SSL، روزانه گواهی سایت را چک می‌کنند و در صورت نزدیک شدن به انقضا، هشدار می‌دهند. این روش، به‌خصوص برای سایت‌هایی با گواهی‌های کوتاه‌مدت ضروری است.
  3. خودکارسازی تمدید: اگر از Let’s Encrypt یا سرویس‌های مشابه استفاده می‌کنید، تمدید خودکار (مثلاً با Certbot) را فعال کنید. اما فراموش نکنید که تمدید خودکار هم گاهی شکست می‌خورد؛ پایش مستقل همچنان لازم است.

در پروژه‌هایی که مسئولیت سایت را به‌طور کامل برعهده دارم، هر هفته یک‌بار بررسی مختصر و هر ماه یک‌بار بررسی کامل انجام می‌دهم. این دو عادت کوچک، جلوی تمام موقعیت‌های اضطراری SSL را گرفته است. اگر سایت شما در حال فروش است، شدت این پایش باید بیشتر باشد؛ چرا که انقضای SSL در روز پیک فروش، ضرر مستقیم می‌زند.

خطاهای رایج و علائم گواهی ناسالم

در بررسی SSL، این خطاها و علائم به‌طور مرتب دیده می‌شوند:

  • NET::ERR_CERT_DATE_INVALID: گواهی منقضی شده یا زودتر از موعد شروعش رسیده. با بررسی تاریخ‌ها سریع مشخص می‌شود.
  • NET::ERR_CERT_COMMON_NAME_INVALID: دامنه گواهی با دامنه‌ای که درخواست کرده‌اید یکی نیست؛ معمولاً در ساب‌دامین‌های بدون پوشش رخ می‌دهد.
  • NET::ERR_CERT_AUTHORITY_INVALID: گواهی توسط یک مرجع معتبر امضا نشده یا زنجیره شکسته است.
  • NET::ERR_CERT_REVOKED: گواهی توسط صادرکننده باطل شده؛ معمولاً بعد از نشت کلید خصوصی.
  • SSL_ERROR_BAD_CERT_DOMAIN: دامنه درخواست با دامنه گواهی هم‌خوانی ندارد.
  • Mixed Content: صفحه HTTPS دارد، اما بخشی از محتوا با HTTP بار می‌شود. این خطا مانع قفل سبز می‌شود و باید منابع ناامن را اصلاح کنید.

هر خطا در مرورگر، ترکیبی از شرایط فنی و تنظیمات است. اگر می‌خواهید سریع مسیر رفع را پیدا کنید، خطای SSL چیست و چگونه رفع می‌شود راهنمای گام‌به‌گام دارد. برای درک تفاوت انواع گواهی‌ها (DV، OV، EV، Wildcard) که در انتخاب آن‌ها به‌دردتان می‌خورد، انواع گواهی SSL و تفاوت SSL رایگان و پولی و SSL Wildcard چیست را ببینید.

سوالات پر تکرار 


  • چگونه اعتبار SSL را بررسی کنیم؟ با مشاهده جزئیات گواهی در مرورگر، بررسی تاریخ انقضا و دامنه، تست زنجیره گواهی با OpenSSL یا SSL Labs، بررسی نسخه TLS و پیکربندی Cipher Suites، و پایش خودکار برای هشدار پیش از انقضا.
  • بهترین ابزار بررسی اعتبار SSL چیست؟ ترکیب ابزار خط فرمان OpenSSL برای بررسی سریع، SSL Labs برای نمره جامع پیکربندی، و سرویس‌های پایش خودکار برای هشدار پیش از انقضا.
  • آیا مرورگرها خطای SSL را در همه دستگاه‌ها نشان می‌دهند؟ نه همیشه؛ خطای زنجیره گواهی ممکن است در یک مرورگر پنهان بماند و در کتابخانه‌های برنامه‌نویسی یا مرورگرهای دیگر ظاهر شود. برای تشخیص دقیق، از ابزارهای تخصصی استفاده کنید.
  • چه زمانی باید اعتبار SSL را بررسی کنیم؟ به‌طور معمول هر هفته یک بررسی سریع و هر ماه یک بررسی کامل؛ بلافاصله پس از نصب گواهی جدید یا مهاجرت سرور نیز بررسی کامل الزامی است.

پایش دوره‌ای، بیمه خاموش سایت

اعتبار SSL یک وضعیت یک‌باره نیست؛ یک عادت دوره‌ای است که پشت صحنه کار می‌کند و از فاجعه‌های خاموش جلوگیری می‌کند. سایت‌هایی که به‌طور منظم پایش SSL دارند، تقریباً هرگز کاربرانشان را با صفحه هشدار قرمز غافلگیر نمی‌کنند؛ سایت‌هایی که این پایش را ندارند، در یک صبح دوشنبه با سیل شکایت مواجه می‌شوند. اگر امروز فقط یک کار می‌کنید، همین حالا تاریخ انقضای گواهی سایت خودتان را در تقویم ثبت کنید و یک ابزار پایش مستقل راه‌اندازی کنید. اگر در پروژه‌ای با خطای SSL عجیبی برخورد کرده‌اید که راه‌حل معمول جوابش نبوده، برای من جالب است بدانید چه بود و چطور کشفش کردید؛ تجربه‌تان را در دیدگاه‌ها بنویسید تا برای خواننده بعدی مسیر سریع‌تری بسازد. 🔐